I'm my head they should last at least a few years before they get so ripped/stained that they need to be retired. The reality is that they start to look pretty rough within a year or so.
I have three teenagers who manage to stain things (period accidents, make up, acne cream that bleaches fabric), and two cats who manage to snag sheets with their claws when they have the zoomies.
It just feels like such a waste to chuck out towels and sheets when they're still functionally okay, but look a bit manky. What do other people do?