I've done some poking at various embedded JS frameworks like Duktape and it's pretty easy to trip on various memory leaks[1] that make it really hard to recommend it as a viable platform for memory constrained spaces.
[1] http://point.davidglasser.net/2013/06/27/surprising-javascri...
http://metasepi.org/doc/metasepi-icfp2015-arduino-ats.pdf
Chez Scheme used to run on 8-bit platform, too. Then there's Pascal and BASIC dialects for microcontrollers. Astrobe has Oberon dialect for ARM Cortex's. AVR-Ada lets you use Ada with AVR's. OcaPIC put Ocaml subset on PIC microcontrollers.
People are using C because most people already use C with the ecosystem benefits that follow. Although C and assembly are dominant, there are other options available if people think their pro's and con's line up with their needs.
I'll try to use in my next embedded job, where they do just C.
The other target is trying to embed some interpreter in a larger application, which ends up being mostly constrained by how nice the language is as well as how nice the C API barrier ends up being.
C is certainly not going anywhere, but it is pretty cool that other options are being built to lower the barrier of entry for some application domains.