Buenas
Resumiendo se puede decir que div es un contenedor de bloque, y span es un contenedor de línea. Esto quiere decir que span puede estar insertado en el medio de una línea y en cambio div provocaría un salto de línea en el mismo contexto.
Quien a buen <span style="color: #ff0000">plato de sopa</span> se arrima buena cuchara le madruga
Eso se visualizará así
Quien a buen
plato de sopa se arrima buena cuchara le madruga
En cambio lo mismo con div....
Quien a buen <div style="color: #ff0000">plato de sopa</div> se arrima buena cuchara le madruga
se visualizará así
Quien a buen
plato de sopa
se arrima buena cuchara le madruga
(con el salto de línea)
Como menciona caricatos (holaaa....

) si a un div se le aplica un display: inline se comportará como un span y a un span si se le aplica un display: block se comportará como un div