Надо делать так:
## Код:
```
TYPE
    Diapason* = ARRAY 2 OF REAL;
    Arr2Diapason* = ARRAY 2 OF Diapason;

  PROCEDURE Need* (age: INTEGER): POINTER TO Arr2Diapason;
    VAR ret: POINTER TO Arr2Diapason;
  BEGIN
    NEW(ret);
    ret[0, 0] := 1;
    RETURN ret;
  END Need;
```

потому что для массивов тег типа создаётся при его определении и в Вашем случае было несколько определений массивов - значит они считались разными.