При сборке каждая команда создает новый слой, который включает в себя только те изменения, которые были выполнены этой командой.
Слои кэшируются и при изменении слоя пересоздаются только нижележащие слои, следовательно в таком формате больше вероятность переиспользования этих слоев в других образах, быстрее сборка.
И это есть в документации:
https://docs.docker.com/build/guide/layers/