ASP.NET MVC applications are compiled. This means that you can't just upload the changed files, like you do with a PHP website, for example. This also means that when you'll start to update the site, current users will be thrown away (lose their sessions, for example).
There is also much more to do than simply update the files: you have to handle permissions, configuration, dependencies, etc. For example, one of the issues which is often encountered by the beginners is that they keep old DLLs in /bin while adding new ones with different names: the application may still use the old ones, which creates a crazy situation where you change the code of the application, but the application behavior remains the same.
Handling the transition between an old and a new version of the application is a hard task. A few years ago, it was one of the issues, where a new version of application was ready, but took days or weeks to system administrators to deploy. DevOps addresses this issue.
The larger is the application, the more complicated is this task.
For a tiny web app, copying source files to the server is enough,
For something larger, you have to have an automated process which deals with the update process, and the rollback in case something goes wrong,
For systems even larger, at every new version, new VMs are created and deployed, and old ones are recycled, ensuring seamless transition of the users from the old to the new version.
Compiled applications simply force/encourage to automate the process earlier.