Most banks do charge for cashier's checks.
The average cost for a cashier's check is between $6.00 to $10.00 depending on the bank and the amount of the cashier's check.
Some banks charge a bit higher fee for the larger cashier's check but at most I've only been charged $10.00 for the highest charge for a cashier's check.
However some banks do give free cashier's checks if you have a premium checking account or a premium savings account or a money market account.
So if you have a premium checking or premium savings account or a money market account you can usually get cashier's checks for no charge.
But for most other checking accounts or just going to get a cashier's check there's a small fee.