Differences between /usr/bin/login and /usr/bin/bash
Solution 1:
A practical difference is in the way that the resulting shell environment reads its initial configuration settings.
/usr/bin/login forks a login shell. I think that it invokes the authentication process, but you may not see any visible authentication interaction if you're already logged in. And, of course, if your login shell is not bash, login will invoke it instead of bash.
bash is a shell that knows whether it was invoked as a login shell or not. A bash login shell reads .bash_profile or .bash_login or .profile -- only one, in that order of preference. A non-login shell will not read a .profile but will read from .bashrc. This is normal bash behavior under modern *nix platforms, but it can lead to difficult to detect weird behaviors if you don't understand what's going on.
For instance, you can open a "login" shell via Terminal, and get one set of environmental variables (say, from your .profile), then type "bash" and get a completely different set of variables (from the .bashrc, plus any variables that were exported, minus those which were not). In particular, PATH can get mangled with repeated or missing entries.
Solution 2:
/usr/bin/login is not a shell; it is a program used to login to a system. It manages the process of logging in to a system. As a user of a properly configured system, you should never have to concern yourself with /usr/bin/login. If you are curious about it anyway, read
man login
A shell is run after the login process has completed. It gives the user a text-based command-line interface to the facilities of the operating system, including running other programs. /usr/bin/bash is a good choice for a default shell. You can read more about bash by executing
man bash
Both of those man commands may be executed at the shell prompt.