1) Typing sudo before everything. Entering your password everytime OS farts. Geez. Even installing nodejs required to type sudo, meanwhile on macOS - brew install node. Also Ubuntu has outdated packages (nodejs version in their "up do date" repository starts with a zero, need to hunt down ppas, I mean at this point package repository loses it's point, because it's easier to go to the package's website and download it than googling out two ppas and checking which one is more legit, buut then you run into another issue - windows has exe files, macos has dmg files, linux has a zip file and it's not recommended to install this way, what a royal mess).
2) No good dock software. There's plank, xfce, kde provides almost "docks", but all plainly suck. What I want from dock - notifications in dock on app icon (you got 2 unread messages in skype, mail app, messenger, etc etc - show a little overlay on the icon with number "2") and tasks in submenu - right click on skype icon - common tasks like changing online status, right click on music player icon - show Play/Pause, Skip song, etc etc. There's a bazillion choices and every linux fanboy touts about the POWER OF CHOICE - but all choices suck (so you could say there's no choice, there's even no one option).
3) I really love global app menu. Well, I was told Linux has THE customizability... Apparently not when you want something more technically difficult than one of the same tilling wm or conky config - for the most part using jaytana and vala global menu worked, but IntelliJ IDEA's globbal menu entries did nothing on click and some gtk3 software didn't hid their own app menu, so not really working well. Customizability my ass.
I like linux on server, it's allright there (although FreeBSD with clearly defined base system and /usr is actually designed), but as a desktop OS - not even close.