For example, when iterating over text, you can’t tell it to just give you a view/pointer into the existing memory of the text. Instead, it copies each snippet of text you want to process into new memory.
As someone used to embedded programming, this sounds horrific.
Windows also still runs software unchanged
from 20 or more years ago, while software on Linux has to be constantly updated to use new libraries and APIs, else it’s considered “dead” and very soon will no longer run or even compile in its current form.
It has a lot of baggage that Linux doesn’t need to worry about. Up until Vista, you could even still natively run 16 bit DOS software from the 80s.