Flutterでダイアログ(AlertDialog)は、AlertDialogのインスタンスを直接呼び出すのではなくて、通常は「showDialog」というメソッドを使って、builder属性内でAlertDialogのインスタンスを呼び出します。
しかし、showDialogメソッドは、ボタンを押した時(onPressed)など、ユーザー側から表示のアクションを起こしてもらう必要があるため、ダイアログを自動的に表示させたい場合は、仕方がないので、AlertDialogのインスタンスを直接呼び出すとします。
しかし、このやり方だとAlertDialogを直接呼び出した場合は、ダイアログ表示元の画面もろとも閉じてしまいます。
なぜなら、ダイアログを閉じる際には通常のWidgetを閉じる際に使うNavigator.popメソッドを使いますが、AlertDialogのインスタンスを直接呼び出す方法を使う方法の場合は、表示元の画面にAlertDialogが載っていない(pushされていない)からです。
ですので、ダイアログを自動的に表示させたい場合は、以下のようにbuildメソッド内でFuture.delayedを使って、一定時間後にshowDialogを起動させてやる方法を使うとうまくいきます。
(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)