Inserting the scaffold call into the controler is called dynamic scaffolding. In this case the scaffolding code is created on the fly in memory (no files are created). This means thatit will track changes to your database.
Running the scaffold command on the command line physically creates the files containing the scaffold code. The nice thing about this is tat you can see the code and even modify it. But if you make DB changes, that you want to see you would have to rerun the scaffold command and regenerate the files.