You can't just distribute arbitrary binaries to users on the web, so web developers have to deal with a layer of complexity that other programs don't have to. That said, maybe WebAssembly will change this story.
yep, other programs totally don't need to deal with different OS, graphics APIs, GPU driverstacks and hardware architectures.
The upside of the JS transformation into just another compiler target is that there is little reason to use JS as the source language, IMO. These JSVM languages do suffer from the same problems to varying degrees.
There is no package.json, typescript, flow, javascript mix, with tens of things configured which change frequently.
Also continuing to work on a python project after a year often is not much of a hassle.
That being said: virtualenvs still seem to be complex matter, especially when you are a beginner.