Это, вероятно, потому что $_SERVER['REMODE_ADDR']
определяется только тогда, когда есть, ну, в общем, удаленный адрес, то есть кто-то запрашивает вашу страницу из браузера. С помощью cron скрипт выполняется локально, и настройка может быть пустой. Если это нарушает ваш код, попробуйте установить его самостоятельно в начале скрипта:
if( !isset($_SERVER['REMODE_ADDR']) ) {
$_SERVER['REMODE_ADDR'] = '127.0.0.1';
}