Weil ein Pointer auf ein dynamisches Array nicht mit einem Pointer auf ein statisches Array kompatibel ist. Ein dynamisches Array ist selbst schon ein Pointer auf den Array-Speicher mit einem Verwaltungsblock davor. Dieser Block fehlt bei einem statischen Array, deswegen kann man keinen Pointer auf ein statisches Array verwenden, wenn ein dynamisches erwartet wird - selbst wenn man versucht, die Pointer auszutricksen und womöglich noch hard-zu-casten. Das ist in den aktuellen Delphi-Versionen ja wie gezeigt auch nicht nötig.