Theoretical or aesthetic advantages are no guarantee that the software in question will actually be superior in practice.
Pretty much what I was thinking of. My understanding from reading some commentary in this area is the Linux implementation is yet a little botched due to how it handles waiting threads.
And yes, the layered storage stack does have a performance penalty to it. But it's also infinitely more flexible, if that is what you need. Linux still lacks IOCP (which io_uring is not a replacement for).
Windows' VMM and OOM is also generally much better.
Don't get me wrong, NT also has its share of questionable design decisions. However overall the technical design of the kernel is great.