On average, a good hash function scatters keys evenly across all the buckets. That even spread means most buckets hold very few entries, so finding the right one takes a small, roughly constant number of steps.
Look up a key and the table computes its bucket in one shot, then checks the handful of entries there. With a low load factor, that handful is close to one. There is no dependence on the total number of stored items.
The word average matters. If many keys collide into the same bucket, that bucket becomes a long chain and lookup slows down. Good hash functions and controlled load factors keep collisions rare, which is what keeps the everyday cost at O(1).
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.