As Carly Simon sang, it's "anticipation." Your conscious mind says to your subconscious mind (which does everything physical for you) to hold the sights still when the gun fires. Your subconscious mind soon learns that the sights jump up when the gun fires, messing up these instructions. It tries to overcome this by pulling the sights down at the same time that it mashes the trigger back to force the shot, thinking that it can exactly overcome the recoil (your subconscious is very quick physically, but not very intellectual). A flinch.
Dryfiring can help to overcome this because it helps to show your subconscious that the sights don't always jump when it pulls the trigger. It works for a while for me, but is not permanent. It certainly does help, though.
Ultimately, you have to learn to stop anticipating the shot. Just let it happen, stay emotionally neutral through the shot, and don't force it. Don't listen for the shot. Don't mash the trigger. Concentrate on the front sight.
A good shot will come as a surprise to your conscious mind, and you will see the front sight lift and be able to call the shot. A great shot will still be a surprise to your conscious mind, but will be controlled by your subconscious mind so that the shot breaks exactly at the right spot and the right moment. That takes a lot of practice.