A regular grid rows everything to equal height, so a tall image leaves dead space below its shorter neighbours. Masonry removes that gap by dropping each new item into whichever column is currently shortest.
CSS alone can fake it with columns: 3 (multi-column layout), but then items fill one column top-to-bottom before moving to the next, so reading order zigzags vertically instead of left-to-right. True Pinterest-style ordering (always fill the shortest column) needs either JS tracking each column's height, or the newer grid-template-rows: masonry (Firefox only, for now).
With only a handful of cards a uniform grid is fine. Masonry earns its keep once heights are genuinely irregular and there are many items — image feeds, pin boards.
When to use
Use when card heights vary a lot and there are many of them. Avoid it for order-sensitive content (step-by-step guides) — fill order and visual order diverge.