Balls go through Zubats and other flying types?
Unless you're experiencing an extremely rare bug, I have not been able to find or reproduce balls going through Pokemon.
However, Zubat is notorious for having an extremely small hitbox:
CollisionRadiusM: 0.0535
CollisionHeightM: 0.0535
CollisionHeadRadiusM: 0.1605
It most likely is that your balls are just not hitting this target hitbox, which may have the semblance of a ball "going through" your Zubat and others.
You can also compare this to the hitbox of Pidgey:
CollisionRadiusM: 0.1344
CollisionHeightM: 0.252
CollisionHeadRadiusM: 0.126
Additionally, it may be a good idea to note that Flying Pokemon will tend to "wander" around the screen a bit more, causing their hitbox to be non-stationary, unlike their ground-type equivalents.
I don't know the code, but, I know that on slower phones (even slightly slower) you'll have to wait a couple of seconds before the game places their hitbox to be, well, hit.