Tylko taka jedna ważna uwaga. Może wyjdzie, że się czepiam, a Ty doskonale wiesz o co chodzi, niemniej Twój wpis może być mylący dla innych - stąd sprostowanie.
PHP nie jest odpalany w przeglądarce, więc zdanie uruchomienie go poprzez przeglądarkę
jest trochę dwuznaczne. Rozumiem o co chodzi - masz na myśli sytuację, w której odpalasz podany link w przeglądarce, a przez to skrypt zostanie uruchomiony. Niemniej to nie przeglądarka go wykonuje, przeglądarka nie ma zielonego pojęcia co tam się dzieje. W dużym uproszczeniu - to serwer WWW, po otrzymaniu takiego żądania od przeglądarki, odpala PHP, wykonuje skrypt oraz zwraca wynik.
Dlaczego to działa odpalone "przez przeglądarkę", ale nie jako CRON? Na szybko przychodzą mi do głowy 2 opcje:
1) jak napisał powyżej @stivens, może jest to odpalane z innej lokalizacji/jakiś problem ze ścieżkami
2) pamiętaj, że żeby coś się uruchomiło, ktoś/coś musi to uruchomienie wywołać. W przypadku odpalania przez serwer WWW, całość jest uruchamiana z prawami użytkownika powiązanego z serwerem WWW, natomiast CRON działa na innych uprawnieniach. Być może to kwestia praw dostępu do plików, może CRON nie może czegoś odczytać/zapisać, bo dostęp do danych plików/skryptów/folderów jest przydzielony dla użytkownika WWW