When reading the chess programming wiki article, it mentions the following:
The main purpose of Zobrist hash codes in chess programming is to get an almost unique index number for any chess position, with a very important requirement that two similar positions generate entirely different indices. These index numbers are used for faster and more space efficient Hash tables or databases, e.g. transposition tables and opening books.
It is not immediately obvious to me why it would be beneficial for similar positions to generate entirely different hash values. The article implies that this would make the hash table more efficient somehow? But I don't see why that would be the case.