Because WebAssembly is extremely limited? Unless you need to ship on the web, using WebAssembly is almost certainly a bad decision as it makes highly compromising tradeoffs that you don't need.
WebAssembly is a tool in work, supported by Google, Microsoft, Apple, etc... Currently it lacks a garbage collector, but this is planned. I would bet on wasm to be the holly graal in the future, more than anything else.
Many optimizations need to be performed at a higher level, using language details. By compiling something to WebAssembly you lose all the ability to do that.
For dynamic languages like JS you can’t actually make these optimizations AOT, which is why we JIT JS in the first place.
WebAssembly is a low level portable bytecode. You still need to write the code in C++ or Rust to get performance benefits.
GraalVM improves the performance of Ruby, Python, etc and also allows you to run C and C++ code in the same VM as a bonus with good performance. Unless you're using an intermediary bytecode like WebAssembly or JVM Bytecode you will also need to ship full sources with your C or C++ application.