A firewall blocks ALL connectivity outside of the VPN tunnel to ensure zero leaks of any kind if the VPN disconnects, while a Killswitch still allows packets to leave your device between the time your VPN disconnects and the program(s) you have in use realize the VPN is disconnected.
A firewall is a proactive solution, whilst a killswitch is a reactive measure. If the VPN connection drops, there is nothing that needs to be done, and not a single packet can leave the machine, since the firewall will not allow it. In geek terms it fails closed.