Non-cryptographic hash functions are used to check if two large blobs of data are equal or not without having to compare the data itself. Or if you want to check whether a large blob of data already is included in a large collection of such blobs. (Think for example if you want to know if a certain image is already included in a large collection of images.) The idea is to calculate a relatively small hash (64 or 128 bits) of the data. For two large data blobs to be equal, at least this hash must be the same. If hashes of two data blobs are the same, than it is still possible that the actual data is different. The idea is to design a hash function where this does not happen often.