Troszkę nie rozumiem na czym polega problem.
Przecież jeśli byś np. chciał pobrać źródło strony
http://php.pl/index.php - też użyłbyś file_get_contents() albo curl'a,
pomimo że źródło strony jest generowane dynamicznie.
I nawet jeśli w tym przypadku csv jest generowane w momencie zażądania obiektu z tej lokalizacji - przejmiesz w odpowiedzi serwera gotowy wygenerowany plik.
A to czy w przeglądarce okienko wyskakuje czy nie - to decyduje tylko jeden z elementów nagłówka odpowiedzialny za "typ danych"
Jesli w nagłówku odpowiedzi serwera będzie
text/html - to przeglądarka wyświetli Ci stronę.
Jeśli natomiast będzie np.
application/zip albo
text/csv to wyskoczy Ci takie okienko,
ale treścią odpowiedzi serwera i tak będzie zawartość pliku.
Czy przed zadaniem pytania próbowałeś najpierw spróbować użyć file_get_contents() ?