I can earn 15%+ on exchange staking it which I don't want to give up.
It is there when you want to stake DOT that
Due to the recent Polkadot network update, the minimum stake amount to receive rewards was increased to 270 DOTamd can fluctuate. Tap to learn more.
This only means that it is not Trustwallet that caused it, it is the protocol on DOT network.
Is there any way I can self custody and stake or is on exchange my only option?
I will advice you not to stake on exchanges.