The reason why desktop Linux is so bad has not very much to do with it being free software, but instead it's more of a political problem which many open source proponents still haven't understood.
Everyone seems to point to Linux as the best model of open source community that managed to outgrow and outpace any commercial offering. Why is that?
The secret sauce for any project, open source or not, that can grow as fast as successfully as Linux is the presence of a BDFL at the top. The one that sets the vision, that pushes back again anything that would impact negatively from that vision and, yikes, might reject patches people have spent their free time on. Blender and Godot are other fully open source project that are competing with commercial offerings, and all have either a BDFL or a very close-knit governance model at the top, that is not afraid to take the next step and find sources of funding for its own full time developers.
All of which is opposite to the governance model of the two biggest UI projects in the Linux desktop world, GNOME and KDE. It's a loose bunch of passionate people that work on whatever tickles the fancy right now, and if they get bored they'll just rewrite a core library or app, backward compatibility be damned, we're just volunteer we don't owe you anything.
We'd have Linux on the desktop in 2020 if any of those projects had some Torvalds-like figure ranting on a mailing list about why the user is always right, shame on you on redesigning the menubar yet again breaking any UI convention for no real purpose, and no, Canonical/Red Hat/whoever, we will not accept this patch that undermines the goals of this project.
So it's really got nothing to do with open source, it's just an organisational problem. Well, that, and the fact that the vast majority of Linux users seems to be incredibly stingy and reluctant to support and pay for these volunteers' time.