The difference between login and interactive shells
The shell requires user interaction and the commands run in it will normally need to be initiated by the user or ask for input.
The shell runs from some kind of automated process so it cannot block and wait for input or provide output. Output is commonly written to log files and input is assumed to be automated.
The shell runs as a part of the user login process. Normally serves to set up the system and the user environment.
Contrary to the previous category, the shell is not part of the login process.