This is not limited to FreeBSD. I'm seeing it on Gentoo Linux. Kernel is 6.6.47-gentoo-x86_64, dovecot 2.3.21.1 (d492236fa0). The warning is logged once every 12-15 hours.
Syslog: 2024-08-24 18:03:49 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100068 seconds - adjusting timeouts. 2024-08-25 06:18:49 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100063 seconds - adjusting timeouts. 2024-08-26 06:52:16 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100062 seconds - adjusting timeouts. 2024-08-26 18:57:54 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100068 seconds - adjusting timeouts. 2024-08-27 07:24:34 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100061 seconds - adjusting timeouts. 2024-08-27 19:38:48 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100060 seconds - adjusting timeouts. 2024-08-28 20:21:44 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100071 seconds - adjusting timeouts. 2024-08-29 08:41:44 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100070 seconds - adjusting timeouts. 2024-08-29 21:04:37 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100071 seconds - adjusting timeouts. 2024-08-30 09:30:36 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100066 seconds - adjusting timeouts.
Chrony ntp keeps the time in sync and the time has been in sync to within 30us of UTC for many days. I noticed that it reports that the unadjusted system clock is about 2.31 ppm fast of UTC. Doing the math for dovecot's 12 hour warning interval: 12 hours * 3600 secs/hour * 2.3/1000000 = 0.0998 seconds. Could it be that dovecot is effectively measuring intervals of the uncorrected system clock time instead of the longer term adjusted time, and it complains when the accumulated NTP adjustments sum to 0.1 seconds.