Two different keys landing in the same bucket is a hash collision. It happens because a hash function squeezes a huge space of possible keys into a small, finite number of buckets.
There are far more possible keys than slots, so by pigeonhole some keys must share a slot. Even a great hash function cannot avoid this; it can only make collisions rare and evenly spread. Poor functions make it worse by clustering keys together.
Collisions are normal, not a bug, so every hash table has a plan for them. Common approaches store the clashing entries in a small list per bucket, or probe for the next open slot. Handling them well is what keeps lookups near O(1) instead of degrading.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.