Compare the stopping rule of each algorithm, since that is what really sets them apart.
Boundary-Fill watches for one particular boundary color and halts there:
\[ \text{fill while pixel} \neq \text{boundary color} \]
Flood-Fill instead watches the interior color and keeps going while pixels match the old color, radiating outward in all connected directions:
\[ \text{fill while pixel} = \text{old interior color} \]
Both use a seed and both cope with irregular outlines, so options about seed points, regular shapes, and speed miss the point. The core contrast is that Boundary-Fill is confined to the region enclosed by its boundary color, while Flood-Fill simply spreads over every matching connected pixel.
\[\boxed{\text{Boundary-Fill fills only enclosed regions, while Flood-Fill spreads in all directions}}\]