It's in your last sentence that you go wrong. There's a relationship between the number of expected hashes per new block and the difficulty. That tells you something about the hash rate, but not the rate itself. Actually, it tells you something about the number of unique hashes being tried per new block (in expectation). And for some applications, that may, in fact, be what you care about.
Specifically, the appearance of new blocks is, if you like, a random variable with an exponential distribution. You can, in principle, estimate the rate parameter for this distribution using the difficulty and the timestamps in the Bitcoin log, but it's not straightforward. The last time I got into it, I was halfway through building a Bayesian estimator for the rate parameter using the log before I had to give up and move on to real work. I'll do it soon.