To have perfect accuracy, they would need to know exactly where the zombies are, how fast they're moving, and in what direction and aim slightly ahead of them. SetAim does not accomplish this. In fact, I don't think it's even possible.
If you want to make the bot aim to fire at the correct position, you can tell it to get the objects velocity and do some equations to find where they'll end up, then setAimPoint or whatever it is to that. It would probably lag with enough bots, but it's possible.
My bot script sends bots to a radius around me, and they all aim at a point in front of me. As such, from a distance, they are basically watching me. But when they get close enough, they look where I'm looking. It's fun, actually. But this is all beside the topic... just mentioning a aimscript I have. I didn't make it, someone I long forgot gave it to me...