Date('01/01/2012','DD/MM/YYYY') had probably not the same format as $(y) and hence the for-condition is not once true. I use for similar tasks numeric values like num(today()) and only NEXT instead NEXT i.
The function you have for converting the string '01/01/2012' into a date is incorrect - the function Date is used for formatting a date field, whilst the function you require, Date#, converts a string to a number.
You could change the line to read:
FOR i=Date#('01/01/2012','DD/MM/YYYY') to $(y)
The suffix in the QVD file name if this worked, would be the integer number for the day (ie. today is 41372), and you probably want it in a YYYYMMDD format.
Try this syntax instead:
let vDays = num#(today() - date#('01/01/2012','DD/MM/YYYY'));
FOR i = 0 to vDays
let vSuffix = Date(today() - vDays + i, 'YYYYMMDD');
TRACE $(i) - $(vSuffix);
You can use $(vSuffix) in the same way as you do $(i) in your code above.