$TIME$ имеет текстовый формат и сравнение происходит до первого нечислового знака. Таким образом, чтобы добраться до минут, нужно проводить "вырезку"
Для расписания с 9:30 до 21:30 код будет иметь вид:
<?if(($HOUR$>09 && $HOUR$<21) || ($HOUR$=09 && substr($TIME$,-2)>29) || ($HOUR$=21 && substr($TIME$,-2)<31))?>
<br><span style='color: #ff0000;'>[работает]</span>
<?else?><br><span style='color: #3498db;'>[сейчас нерабочее время]</span><?endif?>
Кроме того, обратите внимание, что в условиях стоят знаки строго равенства и для расписания с 9:00 до 21:00 код будет выглядеть так:
<?if($HOUR$>08 && $HOUR$<22)?>
<br><span style='color: #ff0000;'>[работает]</span>
<?else?><br><span style='color: #3498db;'>[сейчас нерабочее время]</span><?endif?>