Not cashing out of town checks (especially in large amounts) is definitely a thing in the US.
For larger transactions, it is also common to get a "cashier's check", drawn on the bank's own accounts to minimize the seller's counterparty risk.
The rationale for the in-town restriction is also to limit counterparty risk: if the check is from an unfamiliar bank, it is more likely to be bogus and the seller won't be able to verify the account with a quick call to a known bank nor expect to be able to address fraud within the local law-enforcement framework.