Based on the document, https://cloud.google.com/dataflow/docs/resources/faq
"However, once your job either completes or fails, the Cloud Dataflow service will automatically shut down and clean up the VM instances."
This is easy to understand for Batch. But for streaming, the pub/sub message will keep on coming, how dataflow handle this? it is not efficient to keep on shutting down and cleaning up the VM instances. But also it is not cost effective that keep the VM instances running all the time.
Thanks