Having just seen an instance of iteration over a hash and getting values there on the basis of string equality tests against string constants from a co-worker (in VB.Net though, but the same argument applies of course)…
… maybe it's more common among programmer who grew up in an environment with arrays being the most advanced dynamic data structure?
On the other hand, I'm not sure what to make of the Club-Uzi-quote. The moment you get away from equality tests, because the particular key is only an abstraction of a wider class of strings which all have to refer to that particular value (e.g. case-insensitivity, internationalization, whatever) you are supposed to iterate over the keys (or the key-value-pairs) of the hash, aren't you?