Sometimes what it lacks is functionality.
Not so long ago, on an Ubuntu VM (I think), I was trying to change some system configuration or another.
There simply was no interface to edit whatever it was I was trying to do. You just sort of ran off the end of the earth, and then you were on your own.
Sometimes what Linux (or even FreeBSD) desktops lack is the actual ability to fully control the machine from the GUI, and then you rely on someone being able to drop to the command line and do the real magic -- which is fine if you can do it, and useless if you can't.
What is still needs is to have all of the functionality, instead of most of the functionality. It needs to stop being something you build in a kit or have to endless search the interwebs for trying to solve how to do it.
And, like it or not, it needs better support from software vendors ... I've used the same tax program for over a decade, I rely on that ... don't tell me to use Penguin Tax 0.1 because it's kind almost the same thing and doesn't work in my country and hasn't been updated in 4 years ... don't tell me I can use a web interface, I'm not submitting my fucking tax information on a web interface to a company I don't trust.
The photo editing software which came with my Canon camera ... I want to use that. Not some abandoned piece of crap which kinda sorta does some of what I need. The software to control my TomTom and do updates? Or update the GPS I use for golf? I need all of those things. There is no Linux version.
Computers are tools, not toys. I have some tasks I need to do, and either the platform does them, using the tools I want, or it doesn't. And I don't wish to spend hours trying to re-discover some arcanum I knew in the late 90s about UNIX.
For a good chunk of ordinary desktop stuff, sure, Linux has most of that covered. But as soon as you go off the path, or into something which requires commercial software (which exists and gets used no matter what your ideology tells you) ... then it becomes a largely useless thing.
I still keep VMs around to play with, or because I can shred through some data better with a UNIX command line than with anything else.
But I have yet to be able to rid myself of Windows entirely, which means my Windows machine is more likely to be where I run my Linux VMs