Клиентът не знае, че това е CSV файл (в края на краищата това е просто текст!).
Опитайте се да добавите това ПРЕДИ всякакъв изход (в горната част на вашия скрипт):
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
По принцип вие казвате на клиента/браузъра, че данните, които ще изпратите, ще бъдат CSV файл.
Това трябва да работи.
Можете да намерите повече информация за заглавките там:http://php.net/manual/ en/function.header.php