While I dislike any Windows vs Linux arguments (I run an OS called "AmigaOS"), I do feel my own viewpoint as being valid.... this is all my own opinion, and my own perspective on it.
I've run a lot of OSes to varying amounts from GeOS to Windows 8, via UN*X systems like Solaris 7 thru 9. I've run Linux on my A4000 APUS as well as on PCs and my wife's laptop.
My impression is this:
Linux is just great as long as you do what they expect you to do. If you want to web-browse, it's great. If you want to install an Ubuntu package (I use Ubuntu as that's what I have most experience of these days) then it's fine.
But as soon as you want to run something a bit ... different... things go a bit pear-shaped. All of a sudden you're wondering about what versions of the various different libraries you're running. Then you find out that one lib doesn't like another lib, because it's expecting a newer version....
then you realise that there's static libraries and also dynamic libraries. What you're running may be compiled with a static library which conflicts with another library you have - so you need to recompile, because your system isn't the same as the one which compiled the program you want to run, because that was a few years ago and the OS has changed since then. Then you need to recompile other libraries to support that. Which may conflict with another library you have, so you need to update that. And so on.
All that isn't an actual situation - it's just describing some of the thing that have happened in the past. However, if I've found myself descending into Linux lib hell, I can't be the only one. If I - with experience of SysAdmin'ing my own Sun machines and a CompSci degree - find Linux frustrating, then how do "normal" people find it? I can almost always sort it eventually but it can take
ages sometimes. I don't have this problem with any other OS - not even Windows (which is incredibly brain-dead with its versions, but at least it all mostly "just works" ... these days) or Solaris (which is also a Unix system).
Once it's set up - it works, yes. I have Ubuntu on my wife's Compaq laptop and it runs fine. She has no problems. But then she's not doing much with it apart from simple things.
I also run it on my EEE-PC 701. It's a bit slow but works ok as long as I don't do too much "under the hood"... but as soon as I try something a little odd like running xawtv with my USB Win/TV card, or running an old version of MAME from a few years ago, or some other weird thing, I suddenly can find I need a library which I don't have. Occasionally it even tells me which library - if I'm lucky. Then I need to see if it's in the repository. If it isn't, I need to recompile it. Which probably needs another dependency I don't have, so I have to track down that one.
Overall, I find Linux the most
frustrating system to run.
I like tinkering - it's quite normal for me to do something daft on my Amiga, but then I manage to fix it - I know where everything is. I know the libs: directory is my libraries. I don't have /lib and /usr/lib/ and /usr/local/lib and /opt/lib and /var/lib and everythingelse/lib. I know where my path is from a no-ss boot: it's in C:. Not /bin, /sbin, /usr/bin/, /usr/sbin/,/usr/local/bin etc. etc. etc.
This is why I don't recommend Linux to people unless I'm going to be there to look after it. When Windows goes wrong, it can normally fix itself (these days). When AmigaOS goes wrong,
I can fix it. But when Linux goes wrong it can be a nightmare to fix.
I don't pretend to be the most experienced Linux user in the world. But I do know there must be
some reason why I don't enjoy it in the same way as AmigaOS or even other OSes (not Windows - don't like that either but that's a different story

). And if I have this trouble with Linux, I dread to think what Joe Public thinks of it.
It seems to me that many people think of Linux as being for tinkerers and people who like to play with the insides of their OS. But for me, I spent more time fighting against the OS than playing in it. I can tinker with AmigaOS, and it lets me do it. With Linux, it fights me all the way.
That's why - for me - Linux still isn't accepted by the general public. Like it or loathe it, Windows "just works" these days, and where it doesn't work, most of the time it tells you why and gives you a solution. That's what's missing from Linux. The other extreme is AmigaOS - things often don't work, because you're missing this or that - but it's easy to find out with a little knowledge of the OS
why it doesn't work, and fix it. Hence for me, Windows = best option for Joe Public, AmigaOS = best option for tinkering hobbyist.