Most big stable coins have centralized control over issuing, removing, and freezing their tokens. It's built into their contracts.
How would Tether "freeze" one of the tokens, so it cannot be moved anymore?
Here is the Tether USDT contract https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c....
There is a map `isBlackListed: address => bool` that stores blacklisted accounts. Then the transfer function starts with
function transfer(address _to, uint _value) public whenNotPaused {
require(!isBlackListed[msg.sender]);
...
}
So a blacklisted account cannot send USDT.