Err, because it works ?
It's simple both to set up and use - and it's reliable.
Rsync can do the job, but then you have to set up rsync as a service on your slaves, and write some scripts to both send the updated zone file and trigger the slave to reload it. If the slave is down or unreachable for some reason, you then have to remember the transfer failed and keep trying. So it's far from a trivial system to setup reliably.
Zone transfers ? Update zone, job done.
By default your master will send a notification to the slaves to say the zone has been changed, and the slaves can then retrieve the changes. If the slave is down or unreachable, it doesn't matter - it will pick up on the changed serial number and initiate a transfer later.
You would be correct in pointing out that there's no guaranteed transfer time, but that's the same right through the DNS system - when you make a change, it can take days to ripple through everyone's caches.
Zone transfers are also host/software agnostic. Neither masters nor slaves need know anything about the other, and they may use any format for local zone storage. At work we use BIND for our own servers, but we also buy in a service from another outfit to add resilience. I do know that they use something else, but I don't know what, and I don't need to know what - all I have to do is allow zone transfers to them.
I'm responsible for the DNS for hundreds of domains - zone transfers work, work reliably, are simple, and even our helpdesk monkeys can cope with it !