.NET's cross-platform support is still a work in progress. In particular, it doesn't have a web port, which is crucial for Unity. il2cpp is an AOT compiler to C++, which makes it trivially portable to practically everywhere, including the web, and unlike a VM there is no need to write a JIT for a new CPU, no need to port a runtime to a new OS, etc.
AOT-compiled code can also be very fast. I'm aware .NET has options there too, but il2cpp is literally focused on doing just that, and doing it very well.