Because "shampoo" is not a countable noun* in English. I think this is because it is a fluid, and fluids are never really distinct objects. You could say "a bottle of shampoo" however, because bottles ARE distinct objects.
- as I say below, there is a context where "a shampoo" could be used. That's when we are not talking about the physical fluid called "shampoo", but about a specific brand of product labelled as shampoo.
"Do you have a shampoo that will make my hair less oily?" "Yes, try FreshHead's GreaseAway product"
My suggested "correct" answer was "We do not have shampoos" which is grammatical, but would refer to a variety of types of shampoo on offer. You're much more likely to hear the "We don't have (any) shampoo" as suggested below.