Just quickly looked at Airfoil and it seems to pipe music to existing clients (chromecast, sonos, etc) whereas Snapcast gives you both the server and client software for you to run however you want. Also Snapcast is FOSS, so that's one other difference.
Snapcast needs you to run its own client. This means it handles the synchronisation perfectly, but sadly you can't connect things like internet radio players (like the LaMetric Time) using a web steam.