Canvas (and webGL notably) support is there, but its super flaky and hard to make fast.
JS might be the first 'architecture' for which standard C's pointer arithmetic and casting restrictions get put to truly good use.
Plus all the messy porting of C libs to different platforms go away (you just need one SDL-to-canvas wrapper instead of 5 different implementations). It allows for a concentration of effort.
Also its portability is not an inherent property of JS, it is because of the history.