I attribute this to the older generation of OS developers and project managers and CEOs, who have not offered easy to use, powerful tools to create cross platform applications.
If the programming language is not memory managed, it doesn't matter (so anything C or C++ based is out).
If it's not cross platform, it doesn't matter (Win32, WPF, Cocoa, etc.).
If the priorities of its developers keep shifting, it doesn't matter (Qt from the old Qt widgets to the new declarative ones).
If it doesn't support high DPI or responsive design, it's out.
And I say this as a middle-aged developer, my first PC was a Pentium 1 and I've also used home computers from the 80's.
The incentives for OS creators are to create walled gardens. Which they've done successfully. But because of that, they can't also bitch and moan about "slow cross platform applications" when they do everything they can to kill or hinder cross platform stacks.
This happened nearly a decade ago.
1. More value used to be placed on efficiency.
2. As time went on, the value of powerful, cross-platform tools and platforms became more obvious.
3. Since this was later in the evolution of the industry, the people who made it happen were a different generation that didn't prioritize efficiency.
That is to say, perhaps there's no fundamental reason you couldn't have the nirvana of efficiency and portability (best of both worlds), and it's just that no community of developers has actually aimed for that.
I'm using a lot of Electron apps today. Including VS Code. Because it's so much more productive than anything else I've used before.
I bet you have a very powerful computer. Because you value your time.
My private computer is much less powerful, but still runs noticeably smoother because I don't put any junk on it.
(I cannot, for the life of myself, figure out why applications on Windows cannot play audio consistently without jitter. Might be McAfee or some other corporate shit.)
Perhaps CPU speed/memory is not quite there yet for Electron to be viable in most projects, but nobody is taking away your ability to fiddle bits. Why does it have to be one or the other?
A JS developer can get access to writing their first 'native' client. If it is too slow, perhaps she will investigate a more memory efficient way. Or perhaps its good enough for the current use case.
Some paradigms will be dead ends, but experimenting with higher level languages and libraries is what moves us forward.
It's equivalent to kicking and screaming in the late eighties that this 'Python' is not efficient and a waste of time.
I attribute this mainly to the younger generation of developers, most of whom have never experienced computing with fewer resources, nor have any idea of the amount of resources something should take. That can partly be blamed on education and the "premature optimisation" argument that still gets thrown around as a random excuse to do something terribly inefficient.