It's basically a way to cut down the number of intersections from O(n^2) to O(n), which helps the simulation scale to large numbers of bots. It probably
would be faster to just do one at a time for, say, a simulation of ~25 bots. But when you get more like 1000 bots, the bucket system helps cut down the number of checks massively.
Another term for it is spatial hash, or uniform grid. There's a few articles online that talk about it, eg:
this one.