They are two very different things, and only commonality is that both usually run at the beginning of loggin in a user and both run a configuration dot-file (.login and .bashrc) that are essencially shell scripts. In addition bash, like many modern shells, also allows you to switch between users, which is one of the main purposes of login
In detail:
login is a program used to log in a user, at the end of which the shell (aka command line interpreter) is executed.
login only knows how to do one thing - log in a user (athenticate using username/password, set some environmental variables like TERM and PATH, and execute a couple of on-login admin tasks - see the link for details.
A unix shell (of which bash is an example of) is a command line interpreter coupled with a script interpreter, and its function is to accept input (from the user or supplied programmatically) and execute requested commands.
As far as I'm aware, login can not be used as a shell at all as it has no functionality of a command line interpreter.