I think the reason for Emacs dominance is mostly historical: early on it was probably due to good capability for integrating a REPL process. Also since it is written in a lisp and can be grown organically to fit almost any purpose it developed an ecosystem of useful tools more quickly than Vim - attracting more developers who further developed tooling.
Today the only feature you can't get in Vim that Emacs has is structured haskell mode. I haven't used that enough to know if its worth the switch...
I DID try to switch and while none of this is a real show-stopper and it all could be fixed - I spent a dozen hours on trying to get an Emacs setup with all the features I have in Vim and simply couldn't. For example the auto-complete plugins do not list the type signatures in the pop-up window like neco-ghc does and there is nothing that comes close to fugitive. Also Emacs has an hdevtools plugin for flycheck but I doubt its used much because it doesn't even have a way to pass command line arguments so I had to go hack that in myself. Hdevtools is a killer feature, having instant compilation feedback is incredibly useful in Haskell...it makes it so easy to use the type system interactively while designing a new module. I did get hdevtools to work eventually but I would have to learn emacs lisp to get it working right and since there are other gaps I never put in the effort. I could never figure out how to launch a ghci process with custom arguments...I want the damn REPL to be launched with cabal repl so that it has the same environment as my code and ... I'm sure its easy if you know what you are doing, but I spent at least a couple of hours on that alone and failed. I spent probably 3-4 hours getting Evil working the way I want, things like imap keybinds required a lot of research for some reason. I did get it to work though...Emacs without Evil is not even a contender in mind - modal editing is just way to powerful and my left pinky will be out the goddamn door if I make it pound chords all day.