According to the Chicago Tribune, expiration dates on shampoo are chosen because they have been stability tested by the manufacturers, ensuring the products are still effective after that amount of time has passed. Typically, shampoo expires in three years.
Expiration dates on personal care items, such as shampoo, are set conservatively in order to account for a large range of storage conditions and customer handling. The Food and Drug Administration requires expiration dates to be printed on types of shampoo that have medicinal purposes, such as anti-dandruff shampoo. This is the reason that some bottles of shampoo have expiration dates while others do not.