I was on the Dart team for a while, and even then I felt the best approach to the VM was for the language to become popular first, and for developers and users to demand a native VM.
Dart still has a long way to go towards being mainstream, but I think this will help reduce some of the controversy surrounding it and people can focus on what it brings to developer productivity and app quality.
To me, "JavaScript and Dart" would also be a depressing future. You may hate JavaScript and like Dart, but there are a lot of people who hate both of them and would prefer CoffeeScript or Elm or purescript or JS+macros (sweet.js) or C# or C++ or ...
IMO it is much better to focus on improving compile-to-web support with things like bytecode, better debugging, threading, custom value types, hooks into the garbage collector, etc., etc. - making it feel more like "compilation", less like "transpilation" (to the extent the term implies that you have to look at the output) - than to change the number of blessed languages from one to two. The result, if used to compile Dart (or any other language), might sacrifice a bit of performance compared to the maximum achievable by a dedicated Dart VM, but not that much, and there are myriad advantages.
Dart still has a long way to go towards being mainstream, but I think this will help reduce some of the controversy surrounding it and people can focus on what it brings to developer productivity and app quality.