There's many factors to this, some of which are:

1. Branding. Unlike MacOS/Windows, there is no ONE Linux, you have Linux "Distributions". So the brand is split between different entities with different goals and mentalities. The most known, and defaulted to, outside of hardcore Linux enthusiasts being Canonical's Ubuntu. As you can see from the name, it sounds quirky, but alien, hard to embed into people's minds. Others don't do well here either: Fedora Red Hat Linux, Manjaro Linux, OpenSUSE, Elementary, whatever, none of these are relatable, they're just exotic names. Solution: to have a "default" Linux, just Linux, no other names. When you search for Linux on Google you should get the first result to be "Linux" the "default" distribution, with a big download button for the ISO to install, with the default experience, without having to think about what other words surrounding it mean. Just like MacOS and Just like Windows, you should have a proper default. Not saying other distributions shouldn't exist, but they should be an afterthought for the average user.

2. Evangelism. You don't see people queuing for days in front of a Linux store to buy the latest Linux laptop on release day like you have for Apple and Microsoft products because there is no evangelism, no virtue signaling towards consumer vanity surrounding Linux. And I think there should be if you want normal consumers to show desire; mainly because the "competition" is doing it. Instead Linux markets itself towards the other end of the spectrum: bulky, hardcore, geeky, non fashionable by choice, and this hurts general public interest.

3. Corporate. There are features missing from Linux that corporate environments require, either with good reason or only to tick a checkbox, but nevertheless the reason doesn't matter, as long as they require it, Linux should provide them. The list includes: TMP full disk encryption. Active Directory setup with UI tools, reliable screen sharing and recording, system user for administrators to log in remotely, users wiht different privileges to install tools for normal users, antivirus and VPN support for different vendors, a way to push updates and manage certificates, passwords, disk encryption remotely, with UI tools for each. This is not an exhaustive list but just things for which I was denied a Linux laptop in the past at different workplaces. While there has been some improvement here and there, there hasn't actually been a unified, across the board solution for these that is usable by sysadmins in corporate environments, which are not programmers, so they want UI tools to manage these, and ideally the same tools across any distribution, so they don't have to learn a new tool every time they want to do their work.

4. Desktop Environments. Just like with the branding, there must be only ONE default. I don't really care which, or even if my preferred one gets thrown out and my most hated one becomes the winner, as long as there will be only ONE. This is very important, I would even say the most important point. Without stability, comfort, and harmony in this area there will never be an environment of desktop apps available for consumers to enjoy and use for their work. And desktop apps is what normal consumers expect from their OS.

continuing in a comment...