In reply to Ksharp.

The result is not wrong. The result follows from the rules for calling Base functions from IML The syntax you've shown is equivalent to calling the DUR function with three arguments and changing the third argument for each call. The equivalent DATA step statements are
d = dur(Y, freq, .33); output;
d = dur(Y, freq, .44); output;
d = dur(Y, freq, .55); output;
...
d = dur(Y, freq, .4; output;