Both of these elements are extensively used in modern HTML together with CSS. The only real difference is that span elements have a different CSS display property by default. If you change this property you can make a div behave like a span or vice versa.
So in the interests of simplicity and avoiding features it makes sense to just use <div> tags and combine it with CSS. There is less abstraction which means one needs to think through the problems more thoroughly.