The main issue is that Linux is too fragmented and absolutely not user friendly enough to be consumer-grade in most applications. Steam is doing their best with SteamOS and they have been making great strides in a lot of areas, and they've even allowed me to feel like I can run Linux as a primary OS without losing out on my main off-time workload of gaming. Stuff like DXVK and Proton have made amazing strides towards a gaming OS that isn't Windows.
Unfortunately too much shit goes wrong for the average user. Troubleshooting also becomes problematic when the community itself is fragmented on solutions. Often I will search up a problem and be recommended different solutions that are not using the tools I have available in favor of the other poster's favorite system. It's very annoying to say "I have problem X and have tools Y" and be told "Well, tool Y will do the job but tool Q will do it better".
I've been running Arch on a laptop recently and the first thing I had to do was troubleshoot networking. I looked at the router, wondered if I fucked up the config. Everything else connects fine, must be something else. Turns out that the clock was out of sync and it was preventing the OS from verifying any cryptography. The only time I've had that shit happen on Windows is on an old Surface RT that would randomly decide it was the year 3000.