I asked around at work and got an answer. I'm going to post it here in case anyone else is interested.
babel-node basically calls babel-register internally. see source. The differences are
when using babel-node the entry-point itself will also run through babel vs. babel-register only files required after babel-register is required will be run through babel.
if you need babel-polyfill (for eg. generators) babel-node will pull it in automatically, vs. babel-register you'd need to do that yourself. This is something to keep in mind when building for production. If you need babel-polyfill and you are using babel-node in development, you'd need to make sure you are building w/ babel-polyfill when building for production.
One way doesn't seem to be recommended over the other. However, babel-node is a little cleaner b/c it'll keep the require ('babel-register') out of the codebase. It also seems to be a bit more intuitive to someone new to all this stuff.