The Differences in as easy as much possible: After having a basic understanding, the other comments posted above will be easier to catch.
Shell - "Shell" is a program, which facilitates the interaction between the user and the operating system (kernel). There are many shell implementation available, like sh, bash, csh, zsh...etc.
Using any of the Shell programs, we will be able to execute commands that are supported by that shell program.
Bash - It derived from Bourne-again Shell. Using this program, we will be able to execute all the commands specified by Shell. Also, we will be able to execute some commands that are specifically added to this program. Bash has backward compatibility with sh.
Sh - It derived from Bourne Shell. "sh" supports all the commands specified in the shell. Means, Using this program, we will be able to execute all the commands specified by Shell.
For more information, do: - https://man.cx/sh - https://man.cx/bash