Where does Trezor get UTXOs from? Since UTXOs are required to spend funds, where does Trezor get the unspent outputs from?


Storing them in the hardware requires you to plug it in from time to time to update the UTXO set. You could even run out of UTXOs!
Host-side blockchain scanning for UTXOs from a given deterministic wallet is very expensive (if not impossible since there are infinite addresses in a deterministic wallet).
You can't build a "wallet -> UTXO" index for the same reasons above.


What am I missing? I'm assuming Trezor's primary use case is in PoS. Pehaps I'm wrong there?
As explained in their FAQ, Trezor works together with existing wallet software, it's not a standalone wallet.

What happens is that the wallet you use gets the addresses from your wallet from Trezor and can display your balance with that information. When you want to spend money, it will create a transaction as it would normally do,  but instead of signing the transaction itself, it sends it to Trezor. Trezor will show the transaction on the display and ask for your confirmation. When you confirm, it will sign the transaction with the private keys (that are only stored on the Trezor) and send the signed transaction back to your wallet software, which will broadcast it to the network.