CSS Grid was the first specification for page layout using rows and columns (grids) since the creation of the web. Everything else prior was a compromise.
Flexbox is for laying out rows or columns; while you can do some limited page layout, that's not what it's designed for. Just like tables and floats weren't designed for page layout either.
Another way to grok this: CSS Grid is for two dimensional layout and Flexbox is for one dimensional layout.
Flexbox and CSS Grid were designed to work together, each doing what it was designed to do.
Flexbox generally tends to be great for a single row/column layout, grid excels at multicolumn/row (especially considering subgrid)
One of the most useful features of grid that replaces flexbox, in my experience, is auto-fit and auto-fill, which are great for "card" style layouts. You can use flexbox for these, but the treatment of wrapping items in non-full rows was always a point of frustration for me. This is even better if you can utilize subgrid to align the card contents.
Maybe I'm getting old but I just use flexbox every time. Makes me very "meh" about CSS grid.