Если дело касается веб разработки, то лучше вообще не знать что это такое. А так, можно объяснить, например, на разработке игр.
Есть Model автомобиля, представляющий из себя невидимый кубик. У него есть всякие свойства, типа "координаты местоположения", "открыта/закрыта дверь", "разбитость стекла". Так же есть методы, такие как "ехать", "остановиться", "открыть дверь".
View, в зависимости от значения этих свойств, 60 раз в секунду отрисовывает всю сцену, где автомобиль видимый, находится на том месте, куда заданы координаты, у него закрыта или на распашку дверь.
Controller бесконечно наблюдает за всей этой сценой, и, в зависимости от обстоятельств, раздает команды двум предыдущим. Например, если Model (невидимый кубик), столкнулся с другим таким кубиком, Controller исполняет на Model метод "остановиться", меняет свойство стекла на "разбитое", приказывает View дорисовать на земле осколки и так далее.
А в веб разработке MVC неприменимо. Там объекты вместе с самими классами каждый раз рождаются заново, чтобы тут же умереть, Model так и норовит быть похожей на Controller, View зачастую хочет принимать решения самостоятельно, а Controller вообще не понимает зачем он там нужен. Но логику от шаблона лучше все-таки отделять, это да.