Причин масса, оценить весомость той или иной достаточно сложно. Попробую описать с разбивкой по домашним пользователям и организациям.
Домашние пользователи ПК.
- Более высокий порог входа, отсутствие "армии бесплатной техподдержки". За долгие годы царствования на десктопах Windows стал практически стандартом. Это значит, что вокруг есть десятки людей у которых можно спросить, пригласить сделать что-то. Это может быть коллега, шустрый мальчик-сосед. Даже не смотря на то, что дружественность дистрибутивов за последние годы возросла и в принципе при определённом круге задач уже можно поставить Mint, Ubuntu, Fedora и много ещё чего и тыкать мышкой, не вдаваясь в подробности, рано или поздно домашний пользователь столкнётся с тем, что ему нужна помощь. А привычных форм помощи - нет. Это определённая проблема. Сюда же - командная строка. Это крайне гибкий и мощный инструмент, но порог вхождения выше. Просто представьте что видит новичок - именно видит. Чёрное окно, какие-то символы, мигающий курсор. Я должен что-то вводить? Что? Преимущества командной строки конечно будут раскрыты, но потом. Поначалу же это - одна из сложностей на старте. Ну и ещё - Linux это определённые принципы, система. Но узнать об этих принципах зачастую просто неоткуда.
- Специальный софт. Граждане, у которых есть увлечения (музыка, электроника, рисование, ремонт) и которые в принципе способны преодолеть стартовый порог, сталкиваются с проблемой софта. Привычного софта (для написания нот, разводки плат, рисования, прошивки устройств и т.д.) нет, информация по аналогам - скудная. Имеющийся софт непривычен, не аналогичен, построен на других принципах. А в самом тяжёлом случае его нет. Для того, чтобы переучиться, собрать нужный набор инструментов нужно время, желания, усилия.
- Игры. Да, есть Steam, есть игры в репозитории дистрибутива. Но набор игр совершенно не аналогичен "виндовому".
Корпоративные пользователи и организации.
- AD. Не смотря на то, что способов организовать "каталог компьютеров и пользователей" под Linux далеко не один, зачастую именно это и является проблемой. Способов много, результатов - тоже.
- Legacy софт/софт. Залежи устаревших форматов, набор уникального софта (с которым зачастую даже между версиями windows бывают тонкости) - это дополнительная проблема. Ну и в целом та же проблема наличия/аналогов.
- Стандартизация. Техподдержка должна знать больше. Администратор должен знать больше. Безопасники должны знать больше. Больше внутренней документации. Всё это появляется не бесплатно и не за один день.
Тем не менее именно в корпоративных средах Linux набирает обороты, но не на десктопе, а на серверах. Процесс ускоряет виртуализация: сейчас всё под всем запускается, в части организаций линуксовые сервера живут в виртуалках, в части виндовые виртуализированы в линукс-инфраструктуре, в части и так, и так. Масла в огонь подлила и Microsoft, сделав WSL - запуск Linux ядра и приложений прямо "под виндой".
Сам я уже давно дома на Linux, все "острые грани" уже давно стёрты, и насколько он популярен мне честно говоря дела нет.