I have used both for a long time. Initially freefilesync, then later syncthing.
I have to say the difference isn't great but syncthing is definitely nicer to use.
For one, syncthing can do more. The syncs are more efficient (it can send only changed parts of files, ...), offer more customizability, it's way more capable in networking, or when devices go offline intermittently.
Syncthing also runs a bit better. It is more like a service, I had to babysit ffs a lot in comparison. It also properly detects file changes, ffs's "service" just triggered a full disk scan after a bit.
The webinterface is nicer than logfiles I had freefilesync dump on a dedicated nas share.
One mixed bag is that ffs has to work through network mounts, while syncthing has to work via its own networking (I can still share network mounts with it ofc). In practice there is no network share that is as efficient as syncthing, but it has the downside that syncthing needs to run on both sides where ffs only runs on one side.
On the other hand that automatically gives some checking since if one end dies the other will complain.
... Thinking about it more, in theory you could run 2 syncthings on the same machine, and give one network shares of one target and the other of another, then make them sync. That would keep syncthing traffic in localhost, essentially replicating ffs, if a bit clunkily.
Another potentially big thing is syncthing can do many-device shares. It even does fancy routing things balancing between nodes. This is probably a big deal if you wanna have say 2 backups (one could even easily be offsite, with no networking required except regular residential internet access).
ffs I would expect to become messy with more than 2 devices. I never tried, but I recall it being set up around having precisely one sender one receiver folder, so even cycling 3 scripts would probably break conflict resolution and also be a huge pain and perform poorly.