An interactive shell is attached to a console and usually needs to interact with a person to provide answers. etc.
A non-interactive shell won't stop execution to ask anyone and can be run unattended by the system. It also doesn't have an associated terminal for output.