What is the reason behind water not falling from a bucket at the top of loop?

It is a common misconception that objects have to move in the direction of the force. This is false; the acceleration points in the direction of the force. This means the change in velocity points in the direction of the force. It is not the velocity that points in the direction of the force.

At the top of the circle the water is definitely pushed down by both gravity and the normal force. However, the velocity of the water at the top of the circle is horizontal. Therefore, the velocity picks up a downward component. This doesn't remove the horizontal component though. The velocity just starts to point down as well as horizontal, and the circle continues. Note that this is also true for the bucket, so the water stays in the bucket.

A similar system you can think of that you are probably familiar with is projectile motion. At the top of the trajectory the force points down, the velocity is horizontal, and the projectile continues on its parabolic path with both horizontal and vertical velocity. The difference between the projectile and the bucket is that the net force is constant for the projectile. The horizontal component of the velocity never changes. For the bucket the net force is always changing so that the motion is circular. The vertical and horizontal components of the velocity are always changing around the circle. The projectile is falling, but the water isn't purely falling. It's also being pushed by the normal force provided by the bucket.

The water does fall. It just doesn't fall faster than the bucket. By pulling on the bucket, you keep it around the (also falling) water.