Reactが画面を作る道具なら、Next.jsはReactを使ってWebアプリ全体を作るための仕組みが揃ったフレームワーク。
Reactに足りない部分をまとめて用意する
Reactは画面作りに強い一方、ページをどのファイルで管理するか、サーバーで処理するか、画像をどう最適化するかなどは決めません。Next.jsは、それらを共通の方法で扱えるようにします。

ファイル構成をもとにURLとページを整理する。
必要に応じてサーバー側でもデータを取得・処理する。
画像、フォント、配信用ファイルなどを扱いやすくする。
画面をどこで作るか選べる
Webページは、利用者のブラウザでJavaScriptを実行して作るだけでなく、サーバーでHTMLを作ってから届けたり、公開前にあらかじめ作っておいたりできます。Next.jsはページの性格に合わせて表示方法を選べます。
内容があまり変わらないページを高速に配信しやすい。
利用者や最新データに合わせたHTMLを返せる。
表示後の操作に応じて必要な部分を変化させる。
実際のアプリでは、この3つを完全に分けるのではなく、ページや部品ごとに組み合わせます。
ひとつのプロジェクトで画面から配信まで扱う
Next.jsでは、Reactのコンポーネント、ページ、データ取得、サーバー処理などを同じプロジェクト内で整理できます。複数の道具を一から選び、接続する手間を減らしやすいのが利点です。

Next.jsが向いている場面と注意点
記事や商品ページのように検索から読まれるページと、ログイン後の操作画面を同じサービスで扱いたい場合に向いています。Reactを使うチームが、ページ構成やサーバー処理の方法を揃えたい場合にも役立ちます。
一方、仕組みが多い分、React、サーバー、キャッシュ、表示方法の違いを学ぶ必要があります。小さな静的サイトや単純な画面なら、Next.jsを使わない構成のほうが管理しやすいこともあります。
ここまでのまとめ
Reactは画面を作る中心技術、Next.jsはReactを使ってページ・サーバー・配信まで組み立てるための土台です。