You will need to include the cursor declaration in the @SQL dynamic variable e.g.
DECLARE @SQL NVARCHAR(1024)
SET @SQL = 'DECLARE dupCursor CURSOR FOR SELECT IdNum, IdNum2, Name, Address, AgentName FROM vwPRINTValuationNotice where '
IF IdNum = 0
SET @SQL = @SQL + 'IdNum = ' + @AidNum
ELSE
SET @SQL = SQL + 'IdNum2 = ' + @AidNum
Then use EXEC to execute the SQL
EXEC sp_executesql @SQL
OPEN dupCursor
FETCH NEXT FROM dupCursor INTO @NEWREF
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @REF + ' ' + @NEWREF
FETCH NEXT FROM dupCursor INTO @NEWREF
END
CLOSE dupCursor
DEALLOCATE dupCursor
FETCH NEXT FROM CUR1 INTO @REF