You told PROC EXPORT to make CSV files, so that is what it made. The only reason it wouldn't look like a CSV file would be if the data only had one variable.
But don't you normally want to have a period and extension on the filenames. Like .CSV? They way you have it written your code both periods will be used by the macro processor. The first to mark the end of the macro variable I and the second to mark the end of the macro variable DSET1, DSET2, etc.
You want.
outfile="C:\Users\SAS\Output\&&dset&i...csv"
Or better still skip wasting your time and confusing yourself by making all of those macro variables.
data _null_;
if end then call symputx('max',_n_-1);
set dirlist end=end;
call execute(catx(' '
,'proc export data=',cats('temp',_n_),'outfile='
,quote(cats('C:\Users\SAS\Output\',scan(file_name,1,'.'),'.csv'))
,'dbms=csv replace;run;'
));
run;