OP:
I have experienced the same thing. I am confident that I have figured it out, though. The reason why is because if you shoot with both eyes open and you focus on the front sight... there will be two targets. The target is big and it isn't in focus so the "two targets" overlap and blur together (so you still think there is just one target you are aiming at... especially since you are concentrating on the front sight). It is the same phenomenon that occurs if you hold up your index finger and then cross your eyes... do you now have two index fingers? No, your eyes just aren't focused on it so they see it from different angles.
You naturally "listen" (or favor) your dominant eye so you tend to aim at the image created by your dominant eye. You are right-eye dominant looking at the front sight (that is slightly to the left of your right eye) so your right eye forms a target image to the left of the front sight. You put your front sight over that image and fire... and then for some reason your shots are off to the left. Well, again, when you cross your eyes and hold up your index finger is your finger to the left and the right? No... it is still in the center. So you actually have to aim between the two "false images" created by your eyes not working together like they normally do.
The error caused by this increases as the distance to the target increases. So, for a self-defense situation where everything is up close it won't have to be compensated for.
I actually have an alternative strategy to adapting to this problem. But, I haven't practiced with it enough to know if there are other downsides to this technique that I am not going to address below.
My plan is to focus on the target with both eyes open. You will only see one target and when you align your sights on the target and fire the bullets will actually hit the target. Now the curve ball is that you will see two guns. Two rear sights and two front sights. Because you still have a dominant eye you are only supposed to "listen" to (or use) the image created by your dominant eye. So, focus on the target, aim at the target, and then close your "support" eye. One of the guns should disappear. Don't use the image of the gun that disappeared. Use the image that was still there after you closed your "support" eye.
Practice focusing on the target, seeing the two guns, and then opening and closing your support eye. Learn and know which image of the gun you are supposed to aim with. If you are right handed and right eye dominant you are supposed to use the "left" gun to aim and shoot.
The downside is that the sights on your gun will be blurry (because you are focusing on the target). So accuracy will marginally suffer in that regard. But, I have found that shooting at phantom targets seems to generate more misses than aiming with blurry sights at a single, clear target. Plus, in a real incident you can clearly see everything the bad guy is doing because they are in focus.
Neither technique I have mentioned works great at a distance. If you have to shoot a really small target or a target that is further away it is best to just close your support eye and make the shot with your front sight in crystal clear focus. But, the main purpose of shooting with both eyes open is to keep your peripheral vision and situational awareness at close range in case there is another attacker trying to surprise you (or what have you).
As far as I can tell (and someone should correct me if I'm wrong) is that both eyes open is not a precision shooting technique. It is a skill that should be practiced to permit a heightened situational awareness in close-range fights.