Let me be blunt about Linux on desktop.
Linux desktop manager developers don't care for user experience. (Take example of gnome. It's gymnastic in it's own way)
Linux desktop forces you to use CLI every now and then. Unlike mac and windows, CLI isn't optional on linux.
People are really snarky and obnoxious in Linux community. Their activism and socialism approach goes out of hand and often people don't want such negativity for simply using desktop. You don't have such negativity and activism propaganda always hanging on your shoulder when you use Mac and Windows. KDE people hate anyone who innovate anything before them and don't use KDE. Gnome people don't care about anyone but their own team when it comes to UX. And such drama goes on and on in linux..
Lot of desktop apps which are popular on Mac and Windows don't have strong replacement on Linux.
Lot of driver issues.
Harder to fix boots and other issues without knowing command line or often harder to fix especially if you are using old hardware.
Nobody cares about design in Linux community. We are in 2019 but lot of Linux desktops are still in 1999. If you check some of the UI of some desktop managers, you'd just get irritated with windows border themes and icons.
Difference of opinion does not end well in Linux community. I used to love Ubuntu unity but the amount of hate that was aimed at canonical. I am surprised at they are even funding that free OS after so much hate. If I were to be owning canonical I'd have shifted all my business out of that free OS.
Windows and Mac being mature a lot of documentation is out as soon as the updates come in. In case of linux there is a lot of fragmentation on that front and nobody gets paid for fixing it being an open source in fact you re more likely to get hate for helping out on linux than anything. So why would anyone waste their time of their life doing micro fault management on linux everyday?
It's not worth developing premium app for customers because linux users are less likely pay for the premium application.