This is of course completely subjective, but, from the top of my head:
Painful user interface. No good package management system. Instability and unreasonable hardware requirements for even simple tasks. Missing good command line tools and light-weight methods of remote administration, development and testing.