Замечательные грабли лежат.
Если clamdscan запущен не от пользователя из под которого выполняется php, то оно не работает. Спасибо товарисчам которые беспокоятся о безопасности и ставят временные файлы права 0600!
Вариантов 3:
1) запускать clamd от нужного пользователя. Если clamav используется только для moodle, то это самое простое.
2) добавить clamav в соответствующую группу и в файле repository/lib.php перед строкой
$cmd = escapeshellcmd($CFG->pathtoclam).$clamparam.escapeshellarg($thefile);
вставить строку
chmod($thefile,0640);
3) вариант 2 с правами 0644 и без изменений clamav