In this era, where patching an OS kernel is possible without rebooting (livepatch), it is fair to ask why something much simpler like Moodle can not be upgraded live. 
How do you expect it to work? Moodle consists of thousands of PHP scripts - not mentioning the (S)CSS, JavaScript, etc., out of which hundreds are typically involved in answering a single user request. What would happen, if along the way the execution hops between two Moodle versions? Well, you could be very fast or lucky, your user might crosses a multi-lane highway without getting hit. But there are more, for example, Moodle and the server has all sorts of caches. Even browsers keep caches. So new code old cache, they don't go well together. Even that may pass without much damage. Here comes the biggest obstacle: During upgrade the database goes through a big change. Consider the whole collection of operations as a single transaction. So depending on the order the new code will work on the old database or the other way.
That said, I have done updates (minor changes from X.Y.P to X.Y.Q) when people were working. Some reported later that Moodle became sluggish, but nothing was broken. Warning: Now that is no green light for anybody. I take no responsibility.
How do you expect it to work? Moodle consists of thousands of PHP scripts - not mentioning the (S)CSS, JavaScript, etc., out of which hundreds are typically involved in answering a single user request. What would happen, if along the way the execution hops between two Moodle versions? Well, you could be very fast or lucky, your user might crosses a multi-lane highway without getting hit. But there are more, for example, Moodle and the server has all sorts of caches. Even browsers keep caches. So new code old cache, they don't go well together. Even that may pass without much damage. Here comes the biggest obstacle: During upgrade the database goes through a big change. Consider the whole collection of operations as a single transaction. So depending on the order the new code will work on the old database or the other way.
That said, I have done updates (minor changes from X.Y.P to X.Y.Q) when people were working. Some reported later that Moodle became sluggish, but nothing was broken. Warning: Now that is no green light for anybody. I take no responsibility.
On passing, I have never heard of a single death or grave injuries because a LMS needed to be closed for an hour or so - planned beforehand. 