It is used both in a generic sense, meaning any program that users use to type commands into, and in a particular sense, meaning a particular program, one written by [Steve Bourne]?. It has the generic sense because in UNIX any program can be the user's shell; if they want to use a different syntax for typing commands then they can do that by specifying a different program as their shell. Steve Bourne's shell was the shell used in early versions of UNIX and became a de facto standard. Steve Bourne's shell is also known as [Bourne shell]?, sh, and /bin/sh (the traditional location of the program in the UNIX file hierarchy), and the terms are also used to refer to programs that are compatible or largely compatible with Bourne shell.
/bin/sh is just a standard location for the shell on UNIX. On some systems /bin/sh is a Bourne shell (or equivalent) but on others, Linux for example, it is likely to be a link to a more feature-rich shell such as bash.
Unix shell is unusual in being both the language used by users interactively and the language used to script the system, it is a scripting programming language.