All the "firewalls" (see for example
https://wiki.archlinux.org/index.php/Firewalls) for linux are actually a front-ends to iptables tool which sets the firewall in kernel. AFAIC the result of all of them is a list of rules that can be read by iptables-restore command. Type iptables-save in terminal and you'll see what list I'm talking about. So whenever you modify firewall with these ("static") "firewalls" you flush all the old rules and read and apply all the new rules.
The "dynamic" in case of firewalld means that with each change you do, firewalld applies only the one change and do not recreate the firewall from scratch. It does that with iptables. For example it runs 'iptables -A ...' if you've allowed some service or 'iptables -D ...' if you've removed some service.