Тут много о чем можно порассуждать, когда-то тоже задавался этим вопросом.
1) Все большие компании когда-то были так же маленькими, даже гугл. .net же в свою очередь был раньше очень скудным
2) стоимость, IIS, MSSQL, VS для фирм = большие деньги.
3) Разработчики, опять же зарплаты, так как .net распрастраняется куда меньшим обьемом, то и подходящих специалистов куда меньше, а это означает, что им надо больше платить
4) К пункту 3 - найти хороших работников труднее. Возмом к примеру университеты, как много университетов учит на базовой основе .net стэк? Я когда-то смотрел программы штук 15-20 университетов различных стран и где и есть .net, обычно это как модуль по желанию. Возможно тут я ошибаюсь и есть множество вузов с .net основной, но увы если и слышал о таком, то это было 1-2 раза за всю жизнь)
Сюда еще можно много чего приписать, если хорошенько подумать))