Cheap shampoos are usually formulated using industrial detergents. Sodium Lauryl sulfate or sometimes ammonium laurel sulfate are most frequently used and they are quite a harsh detergents. These industrial detergents are cheap to make and so many shampoos use these as the key cleaning ingredient. There is a move towards using milder sodium laureth sulfate in shampoos but even this is fairly a powerful detergent. Although these detergents are quite harsh on hair, most people can use them without any real problems.
Hair is tough stuff and can withstand harsh detergents.
However, people with dry or weak hair may find that a milder shampoo is more appropriate for them. What usually makes a shampoo expensive are additives, especially expensive herbal oils. Herbal shampoos do not do any better at cleaning the hair than chemical detergent shampoos. Sodium or ammonium lauryl sulfates are very harsh detergents. They are in many shampoos but may not be appropriate unless you have normal to oily hair or only wash your hair occasionally.