The term traces back to print, where inner margins had to be left for binding. On the web, gutter width is set independently of column width so content doesn't read as cramped together no matter how many columns there are.
In CSS it's just the gap property (formerly grid-gap): display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px. Flexbox supports gap now too, so the old trick of zeroing out margin-right on the last column is no longer needed.
Too narrow a gutter and columns read as one blob, losing the grid structure; too wide and elements in the same row look unrelated. A common range is a quarter to a third of the column width, or a multiple of the 8pt grid (16px, 24px).