Since AutoLISP evaluation is executed using the AutoCAD GUI processor thread, whilst the AutoLISP code is being evaluated, the AutoCAD application cannot communicate with the OS; and if the Windows OS does not receive any response from this thread within 5 seconds, the application is automatically marked as unresponsive and the cursor will display the processing donut icon.
The grread function (and, curiously, execution of the DELAY command) will temporarily return focus to the application thereby allowing communication with the host OS, and so I can only assume that more than 5 seconds elapse between successive calls to the grread function in your code when run within the 2007 environment.