Plusieurs raisons à ça.
Premièrement d'un point de vue calculatoire, essayer de faire la descente de gradient sur l'ensemble des données en même temps n'est généralement pas possible. Essayez et vous tomberez sur la bien connue erreur "Cude out of memory".
Deuxièmement, la taille de batch a un effet de régularisation lors de l'entraînement qui permet d'améliorer la qualité du modèle en jouant sur le dilemne biais/variance.