White shirts can turn yellow due to a combination of factors, including sweat, body oils, dead skin cells, and environmental pollutants. Over time, these substances can build up on the fabric, leading to discoloration and a yellowing effect, especially if the shirts are not cleaned properly.