No buyer agents are not "free". The proof of this is the fact that the buyer's agent leaves with a check at the end of the closing. Someone is paying for that check. The question is who is actually paying?
Ultimately it is the buyer who pays for the buyer's agent. Here is how it works.
The seller of a home decides that in order for them to sell their home they need to walk away from the closing table with $260,000. If they cannot net at least $260,000 it does not make sense for them financially to sell.
Enter the buyer. If the buyer showed up to this home without an agent and offered the seller $260,000 then the seller would be happy. The buyer and seller would sign a contract and the two parties would both be satisfied with the transaction.
Now instead of just the buyer, we have the buyer and their agent enter together. In most cases the buyer will have signed an agreement with their agent to pay a 3% commission to the agent. However, most buyer's agents will tell the buyers that the "seller will pay this fee" and not to worry.
The buyer now offers that same seller $260,000 but unlike the first scenario the offer will include a provision that says the seller must pay 3% of the $260,000 to the buyer's agent. Where the seller was happy before, they are no longer happy. In order to walk away with $260,000, they now need to sell their home for $267,800. Therefore, they reject the buyer's offer and counteroffer at $267,800. If the buyer wants the home they now have to pay the higher price.
Assuming the buyer still wants the home, they now have paid the seller $260,000 and their agent $7,800.
Doesn't sound "free" to me.