The Extract API can work around several connectivity issues. For example, in your case - the csv file- the file would have to be hosted on a shared drive that the system can access in order to be refreshed on Tableau Server. Using the extract API, you can easily refresh this and publish it up.
When using cloud based providers, this becomes especially helpful.
One additional benefit of the Extract API is it can be hosted on Linux environments, which many people like to use for their server infrastructures.
(For example, with a particular client setup, we pull from a localhost Postgres DB with the extract API on Linux and publish it up to a cloud hosted Tableau Server)
Also, you can scrub/modify the data in Python before packaging it up for the Extract. Overall, I've been pretty happy with the API... but I'm a programmer, so I'm biased.
Hope this helps clarify!