The reason is that in NAT mode VirtualBox effectively provides routing of Internet traffic to and from the virtual machine, whereas in bridged mode you have to do this yourself. In other words, you need to set up your host computer as an Internet gateway (with forwarding and SNAT or masquerading). In bridged mode your guest behaves as if it were a completely separate computer on a LAN behind the firewall (or a completely separate computer on the internet, but that will require a separate static IP address), which is sort of the whole point of running a virtual machine.
Since you probably only have one static public IP address, you need to bind another (internal) IP address to the host OS, either on the same interface or on a different one, and then either allow the guest to acquire an IP address on the same internal subnet from a DHCP server or configure it statically that way. Then you set up iptables on the host to do forwarding from the external IP to the internal LAN, plus the relevant rules for SNAT/MASQUERADE, and all should be fine.