A hash value is just a number, that identifies a block of data somehow. Example: if you have 10 bytes, you could just add all those byte without carry and get a 1 byte hash value for those 10 bytes. You could than add an additional condition to this hash value, like 'must be < 10' and try to find all blocks, that have such a hash value. The hash rate would be the number of blocks you could check per second, if their hash value fulfills this condition.

The sha256 hash value is much more complicated to compute, so you need quite some computing power to check a reasonable number of bitcoin blocks per second.