Laptops and smartphones are made for doing different kinds of things. The real-estate requirements are different, as are the typical use cases, and even in the case where you solve them both with, for example, dynamic web pages, you still end up coding for both use cases separately, you just now have it all stuffed into the same codebase, which is harder in many cases instead of easier.
I believe Microsoft has been trying to make all OS usecases the same for decades. I believe they have not succeeded, not because Microsoft is deficient somehow, but rather because it's not, fundamentally, a good idea.
For example: SSH clients and servers. I've tried playing with various apps from F-Droid to make it happen, with varying success. If I have just Linux, I know what should work. Another one is backups. I have a better sense of what I need to back up on a common Linux system than an Android-like one.