На ум приходит следующее.
1. Поддержка железа.
Она была первой проблемой, с которой я столкнулся в линуксе, и остается проблемой до сих пор. В случае винды я почти всегда уверен в том, что найду подходящие драйверы. И если производитель железки пишет, что железка эта совместима, скажем, с Vista, то она точно будет работать в Vista. Если же производитель пишет, что железка совместима с Linux, то мне еще предстоит выяснить, в каком именно дистрибутиве она реально будет работать.
Конечно, эта проблема становится все менее острой, дров все больше, качество их тоже улучшается, но до идеала еще очень далеко.
2. GUI.
Линуксойды любят хвастаться всякоразными Compiz'ами и KDE4'ми, которые и красивые и удобные и т.п. В свете этой красоты и удобства непонятно, почему столь многие линуксовые приложения имеют такие топорные и глючные пользовательские интерфейсы. Такое чувство, что разработчики воспринимают GUI как излишество (настоящие пацаны все делают в консоли), не стоящее того, чтобы тратить время на его тщательную проработку.
3. Пакеты и зависимости.
Возможно, в былые времена, когда винты были маленькие, а приложений мало, идея разбивать приложения на небольшие части и завязывать их друг на друга была оправданной (экономия места и все такое). Сейчас же она доставляет больше хлопот, особенно когда разработчики при выпуске новых версий каких-то библиотек не заморачиваются обеспечением обратной бинарной совместимости.
Вся эта ситуация не сильно напрягает, пока работать приходится лишь с одним репозиторием и нет нужды держать несколько версий одного приложения. Когда же появляется потребность ставить софт из других репозиториев, начинаются проблемы в виде всевозможных конфликтов и трудноуловимых глюков.
Есть, конечно, и другие вещи, менее значимые, но вышеперечисленное, что называется, наболело 