I suppose that for the platform provider it's easier to ship only one runtime and then run everything over it, also might be better in terms of security because of the sandboxed nature of WASM.
Once WASI gets stabilized, you will also have the option to mix JS with the other languages that already target WASM, so your infra could be build on top of different languages and change them according to the requirements, just think of you build your entire system in JS, compile in modules and deploy them as components, then you can swap one component at the time when necessary.
Cpu architectures and hardware is incompatible, so OSs provide a layer across. OSs are incompatible, so browsers and their virtual machines (i.e. javascript runtimes) provide a layer across. Browsers are incompatible (in some ways more than others), so wasm provides a layer across. Wasm is cool, so we backport wasm + the vm + the browser + the OS to a new program, which abstracts all that again. Cross platform is hard and hasn't gotten any easier.
I'm sure we are on a good path, sure, but unless there is a monopoly, there will always be a need for cross-compatible software. We should build software like that, like we've been doing in C++ and Rust and languages which are built to acknowledge that platforms are different.