Ну если бы файл читался сразу весь, то
deploy.sh размером 100 МБ башу приходилось бы сразу выделять 100 МБ, и читать весь чтобы исполнить. В текущих реалиях 100 МБ - ерунда, но вот если это будут гигабайты, то такой подход уже не подойдет. Что и позволяет делать инсталляторы однофайловые