1) Многообразие ядер системы.
Для того, чтобы у меня на специфичной железяке завелся линукс, который умеет работать с wi-fi мне нужно было найти конкретное ядро, которое умеет с ним работать.
2) Бинарная и логическая несовместимость.
За примерами далеко ходить не надо. tar - чуть ли не самая основная программа имеет несколько версий, некоторые между собой не совместимы.
Про запуск бинарников я вообще молчу.
3) Отсутствие защиты от дурака.
Если с системой что-то случится, то в 90% случаев проще накатить заново, чем понять что там произошло.
4) Поддержка устройств.
Перекликается с 1 пунктом. Однажды я узнал, что один из моих дистрибутивов никогда не будет работать с конкретной видеокамерой, только потому, что при компиляции я не указал какой-то параметр. Есть люди, которым не лень потратить примерно сутки на пересборку и перенастройку системы, мне же лень.
Ну и есть куча стандартных претензий:
1) Игры.
2) Специальный софт.
3) Офисы.
4) Приемлемая техническая поддержка.
5) Флеш.