Most of the comments here seem to be from the consumer perspective, but if you want broader adoption, you need to consider the corporate market too. Most corporate software these days is web-based, so the problem is less with the software and more with the people responsible for it.
The biggest hurdle is friction with the internal IT team. They like Windows because that's all they ever learnt and they're not interested in maintaining a diverse set of company laptops. They won't entertain Linux in a corporate environment unless it's mandated by management, and even if the bosses approve it, IT will want a way to lock you out of your laptop, force updates, do a remote wipe, etc.
There are (proprietary) tools to do some of this, but they generally suck and often clash with your package manager. Microsoft is just way ahead of Linux in the "bloatware that tours your hands" department.