Unlike Canada (and the rest of the civilized world) the US does not have chip+pin, so the zip code sort of acts as a pin to verify that the owner (or someone who knows the owner's zip code :-/) is using the gas pump. I assume you've tried just putting in a random zip code, right? If that doesn't work, and the methods above don't work, you're at the mercy of the cashier.
I have the same complaint that you have about pumps in many places that are exclusively chip+pin, as a mag-stripe American CC does not work in those. Thankfully, I have a couple of EU-issued cards that let me buy whatever I need most of the time.
A bit off topic: It's interesting -- my Chip+pin card that is issued in Portugal turns into a chip+signature card in France, but works fine as a chip+pin card in Spain.