The C abstract machine is basically an overgrown PDP-11 at this point and most modern hardware is designed with that in mind with GPU and vector hardware being notable exceptions — and notably not being especially amenable to programming in C.
It’s actually been an unfortunate and pernicious codependence IMHO.
however, typically you'd want the vm to be easily portable / buildable in new environments, and that's much easier to achieve with c.
and it is likely just easier to write this kind of low-level code in c (however i know plenty of people who will gladly demonstrate otherwise).
consider that the jvm et al are also written in c(++), for much the same reasons of practicality.