After the transaction, the clerk has to pull out a QR code card to let you scan. The app on your phone won't try scanning until it can get a location to verify you're actually there. Maybe a quarter of the time my phone's flaky GPS has trouble getting a location, so the clerk ends up standing there with the card out while I hold my phone out. Then once it scans, it takes a moment or two for the app to talk to the backend and register the punch. Even if my phone had perfect GPS it'd still be a little too much effort.
The yogurt shop eventually wound up getting paper punch cards in addition to Punchd, and I started using those instead of the mobile app. It takes less time for them to just take the card and stamp it than it does to do the whole Punchd dance.
With Google's oomph behind this, I could see them start using NFC tags, which might speed up the process. But until then I've quit using this as a customer.