There are words for different types of cleansers and words for how those cleansers are used. You can't really compare soap with shampoo -- it's like comparing an apple and an orange.
***
An apple-and-apple comparison of words for
various chemicals used as cleansers--
A
soap is any chemical made by reacting an alkali (NaOH for example) with fat or fatty acids in the chemical reaction called saponification.
Soap, as we use the word, is a
surfactant, meaning a chemical that is a "surface active agent". Surfactants help other chemicals to mix together more easily. Not all surfactants are cleansers; surfactants can do many jobs, so there are many sub-classes of surfactants. The soap we normally make is a class of surfactant called a
detergent, which means it is a surfactant that is good at helping water to mix with greasy dirt in a process called emulsification. Detergents are cleansers.
There are other soaps (ones we small-scale makers don't normally make) that have good uses as lubricants, for example. Soaps like this are not water soluble and do not have the ability to emulsify or clean. These soaps are not detergents, are not surfactants, and are not much on our soapy radar.
Non-soap cleansers are any cleanser that's not soap. Just as saponification is the specific chemical reaction that makes soap, non-soap cleansers are created with other specific chemical reactions. You have to study each cleanser to learn how it's made. Like soap, these cleansers are also surfactants and detergents. On this forum you may see non-soap cleansers called "
syndets" or
synthetic detergents to distinguish them from soap.
***
Another apple-and-apple comparison of
how cleansers are used --
Shampoo as the word is used in modern times is any cleanser intended for cleaning the hair and scalp. Shampoo can be soap or it can be a syndet or it can be a mix of the two. A shampoo could be formulated exactly the same as, say, a bath soap or a general purpose syndet cleanser. What makes it a "shampoo" rather than a cleanser for general bathing can be mainly what it's called on the label, not necessarily what's inside the bottle.
As others have pointed out, however, a shampoo is best made with syndets, because the high pH of soap is damaging to hair. It lifts the cuticle (scales on the hair strand) making the strand weaker and more prone to breakage. Since hair can't repair itself like living skin can, this damage is cumulative.
It is true that soap was used to clean hair before syndets were available; the first syndet shampoo was introduced in 1930. Before that time, hair was washed a lot less frequently, so the cumulative damage from using soap was minimized. Even so, an acidic rinse was often recommended to help repair the damage after washing the hair with soap. We wash our hair a lot more frequently nowadays. An acidic rinse only reduces the damage; it doesn't eliminate the damage.
This is the reason why all commercial shampoos are formulated with syndets, not soap. And this is why many small scale makers also make syndet-based shampoos, not soap labeled for washing the hair. Again, as others are pointing out, there are other small scale makers who make soap and label it for cleansing the hair, but there is a real risk that this type of product will damage hair, especially with long-term use. That's why most of us syndet shampoo makers avoid saying "shampoo" when talking about soap used to wash the hair.
***
Body wash is any liquid cleanser intended for cleaning the body. It too can be based on soap or synthetic detergents or perhaps a mix of the two. A body wash could be exactly the same formulation as a shampoo; it's just labeled differently.
(12/5 -- lightly edited for clarity)