Why should you use a webserver instead of Flask’s built in web server:
It is not as efficient as a standalone one as it runs in a thread alongside the workers and they compete for CPU time inside a single process.
It’s also very inflexible and doesn’t let you adjust the interfaces:workers ratio, which is how you can tune performance (based on if your site has a high number of open connections versus a high number of requests per second).
The development server could just fail outright. It is not designed to be used as a long-running process (days, weeks, months), and so it has not been well tested to work in this capacity.
If you are concerned at ALL about security (and not just the security of the data in the application itself, but the security of the box that will be running it as well) then you should not use the development server. It is not ready to withstand any sort of attack.
Here’s an example of how you can configure an nginx server for your Flask application.