That's it! Under /etc/crond.d, there is a clamav-update cron that runs freshclam-sleep every 3 hours. So this overrides the frequency setting in the freshclam.conf file.
Mystery solved. I checked for cron jobs but I only looked in /var/spool/cron and didn't think to check in /etc/crond.d.
The default Clam packages install /etc/cron.d/clamav-update from
the clamav-update RPM. But you can disable that and use the
systemd timer services, instead.