That's not exactly true. The transfer is immediate. The verification that ensures you aren't the victim of double-spend fraud takes an average of 5 minutes (during which they are waiting for their coffee). The transaction will show up as unverified on the blockchain even sooner than that, during which a future merchant could choose to not accept payment until the previous payment clears.
Even if they were successful once, the merchant could choose not to sell to them again. Considering the merchant charges on a credit card vs. the low transaction fees of Bitcoin, I would be surprised if Bitcoin didn't come way ahead in this scenario.