In der chroot Umgebung der SSH-Konsole sind wie gesagt die Pfade anders. Der Cronjob, aber auch der Webserver müssen aber auf das data-Verzeichnis zugreifen können mit dem Pfad, der in der config.php (oder der zusätzlichen config-Datei) steht. Wenn du jetzt einfach einen der beiden Pfade da reinschreibst, vermutlich den, der für den Webserver passt, dann wird der für SSH und den Cronjob nicht passen und genauso auch umgekehrt. Schreibst du den SSH-Pfad rein, greift der Webprozess ins Leere. Die Lösung, die hier vermutlich gemeint ist, stammt von KB19 und ist vermutlich die eleganteste, weil man sich nicht mit dem Herausfinden des jeweiligen Kontexts (Web/SSH) beschäftigen muss (was aber auch möglich wäre, dann könnte man mit einem if/else die jeweiligen Pfad des data-Verzeichnisses angeben).
Die PHP Funktion realpath() wird benutzt, um den Pfad des Data-Verzeichnisses relativ zum PHP Script im config-Verzeichnis (config.php, ...) in den für den jeweiligen Kontext richtigen, absoluten Pfad umzuwandeln. gibt es x Threads dazu hier im Forum, mit mehreren funktionierenden Lösungen für den Pfad zum data-Verzeichnis. Klar ist, wenn in der config.php ein fester Pfad drinsteht, dann funktioniert immer irgendetwas nicht bei der Nextcloud. Die meisten stolpern erst mal über den nicht funktionierenden occ-Befehl in der Konsole. Aber klar ist auch der Cronjob betroffen. Auch der muss ja für die meisten Jobs wissen, wo das data-Verzeichnis ist und holt sich den aus der config.php. Die Lösung von KB19 (siehe z.B. hier) funktioniert so nur für den Default-Pfad für das data-Verzeichnis, kann aber für andere Pfade angepasst werden.