The first is that nvm is nodejs specific and since I knew I wanted it to eventually work with multiple languages, nvm is out.
Second is that docker has a API I can work with (via Dockerode in this case), makes it easier to use/debug and such.
Third is the easy of isolation. It's basically what docker is about while nvm is more for just managing versions.
I still use nvm locally, when developing. But when I want to rapidly test in multiple versions, I use docker with autochecker.