It's quite common to find these topology errors when dissolving data:
It's quite simple to understand the concept of a polygon donut hole in these cases: when the geometry really had a gap. But when your resulting holes are lines or points, my logical thinking get stuck.
What exactly makes this happen or not? If the polygons share the same boundary lines without gaps, how does it create a line hole? A point feature within this 'line hole' wouldn't intersect with the polygon feature?
I'm looking for a more detailed explanation, rather than the general and common "This happens when working with bad quality data"