10 years might be too short.
Much too short. There are a variety of very good reasons someone might not touch their bitcoins for more than a decade.
Perhaps there could be some sort of fork (soft or hard) where "very old" unspent UTXOs are expired
Like, an altcoin? Sure. Go ahead and create a steal-a-coin cryptocurrency where you lose your coins after a while. Let see how many people actually want to use it.
but only if they are still stuck in legacy addresses. I think any coins in newer segwit addresses (or future taproot addresses) should never expire as some people may be holding on to them for the next several decades.
Why should legacy addresses be treated any differently?
It is good practice for wallets to move coins every year or two but that's besides the point.
Every year or two? Why would that be a good practice? Sounds like a bad idea to me.