The fact is that it's not always true that better product will take the market. Linux is better but it has ~2% desktop PCs (much more % of Web servers and other Internet services).
Why is it not so much popular:
1) People think it's hard to use. This opinion is about 5 years old. Linux users "helping" people by sending "read man xxxx" are making it still alive.
2) It's not easy to buy a new machine with Linux.
3) There are not many games for Linux.
4) People don't like new things. Many computer users know only one environment and don't want to learn about something new.
5) Big choice of application (may window managers, for example) is great for already-Linux-users, but for newbies it looks like chaos.