<p>The idea of monads as models of computation can be traced back to the work of Eugenio Moggi. Among Haskell practitioners, the best known paper by Moggi on this matter is <a href="https://www.disi.unige.it/person/MoggiE/ftp/ic91.pdf" rel="noreferrer"><em>Notions of computations as monads</em></a> (1991). Relevant quotes include:</p>
<blockquote>
<p>The [lambda]-calculus is considered a useful mathematical tool in the study  of programming languages, since programs can be <em>identified</em> with [lambda]-terms. However, if one goes further and uses [beta][eta]-conversion to prove equivalence of programs, then a gross simplification is introduced (programs are identified with total functions from <em>values</em> to <em>values</em>) that may jeopardise the applicability  of theoretical results, In this paper we introduce calculi based on a categorical semantics for <em>computations</em>, that provide a correct basis for proving equivalence of programs for a wide range of <em>notions of computation</em>. [p. 1]</p>
<p>[...]</p>
<p>We do not take as a starting point for proving equivalence of programs the theory of [beta][eta]-conversion, which identifies the denotation of a program (procedure) of type A -&gt; B with a total function from A to B, since this identification wipes out completely behaviours such as non-termination, non-determinism, and side-effects, that can be exhibited by real programs. Instead, we proceed as follows:</p>
<ul>
<li>
<ol>
<li>We take category theory as a general theory of functions and develop on top a categorical semantics of computations based on monads. [...] [p. 1]</li>
</ol>
</li>
</ul>
<p>[...]</p>
<p>The basic idea behind the categorical semantics below  is that, in order to interpret a programming language in a category [C], we distinguish the object A of values (of type A) from the object TA of computations (of type A), and take as denotations of programs (of type A) the elements of TA. In particular, we identify the type A with the object of values (of type A) and obtain the object of computations (of type A) by applying an unary type-constructor T to A. We call T a <em>notion of computation</em>, since it abstracts away from the type of values computations may produce. There are many choices for TA corresponding to different notions of computations. [pp. 2-3]</p>
<p>[...]</p>
<p>We have identified monads as important to modeling notions of computations, but <em>computational monads</em> seem to have additional properties; e.g., they have a tensorial strength and may satisfy the mono requirement. It is likely that there are other properties of computational monads still to be identified, and there is no reason to believe that such properties have to be found in the literature on monads. [p. 27 -- thanks danidiaz]</p>
</blockquote>
<p>A related older paper by Moggi, <a href="https://www.disi.unige.it/person/MoggiE/ftp/lics89.pdf" rel="noreferrer"><em>Computational lambda-calculus and monads</em></a> (1989 -- thanks michid for the reference), speaks literally of &quot;computational model[s]&quot;:</p>
<blockquote>
<p>A <strong>computational model</strong> is a monad (T;[eta];[mu]) satisfying the <strong>mono requirement</strong>: [eta-A] is a mono for every A [belonging to] C.</p>
<p>There is an alternative description of a monad (see[7]), which is easier to justify computationally. [...] [p. 2]</p>
</blockquote>
<p>This particular bit of terminology was dropped in the <em>Notions of computations as monads</em>, as Moggi sharpened the focus of his presentation on the &quot;alternative description&quot; (namely, Kleisli triples, which are composed by, in Haskell parlance, a type constructor, return and bind). The essence, though, remain the same throughout.</p>
<hr />
<p>Philip Wadler presents the idea with a more practical bent in <a href="http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf" rel="noreferrer"><em>Monads for functional programming</em></a> (1992):</p>
<blockquote>
<p>The use of monads to structure functional programs is described. Monads provide a convenient framework for simulating effectsfound in other languages, such as global state, exception handling, out-put, or non-determinism. [p. 1]</p>
<p>[...]</p>
<p>Pure functional languages have this advantage: all flow of data is made explicit.And this disadvantage: sometimes it is painfully explicit.</p>
<p>A  program  in  a  pure  functional  language  is  written  as  a  set  of  equations. Explicit data flow ensures that the value of an expression depends only on its free  variables.  Hence  substitution  of  equals  for  equals  is  always  valid,  making such programs especially easy to reason about. Explicit data flow also ensures that the order of computation is irrelevant, making such programs susceptible to lazy evaluation.</p>
<p>It is with regard to modularity that explicit data flow becomes both a blessing and  a  curse.  On  the  one  hand,  it  is  the  ultimate  in  modularity.  All  data  in and all data out are rendered manifest and accessible, providing a maximum of flexibility. On the other hand, it is the nadir of modularity. The essence of an algorithm can become buried under the plumbing required to carry data from its point of creation to its point of use. [p. 2]</p>
<p>[...]</p>
<p>Say it is desired to add error checking, so that the second example above returns a sensible error message. In an impure language, this is easily achieved with the use of exceptions.</p>
<p>In a pure language, exception handling may be mimicked by introducing a type to represent computations that may raise an exception. [pp. 3 -4 -- note this is before monads are introduced as an unifying abstraction.]</p>
<p>[...]</p>
<p>Each of the variations on the interpreter has a similar structure, which may be abstracted to yield the notion of a monad.</p>
<p>In  each  variation,  we  introduced  a  type  of  computations.  Respectively, M represented computations that could raise exceptions, act on state, and generate output. By now the reader will have guessed that M stands for monad. [p. 6]</p>
</blockquote>
<p>This is one of the roots of the usage of &quot;computation&quot; to refer to monadic values.</p>
<hr />
<p>A significant body of later literature makes use of the concept of computation in this manner. For instance, this is the opening passage of <a href="https://arxiv.org/abs/1406.4823" rel="noreferrer"><em>Notions of Computation as Monoids</em></a> by Exequiel Rivas and Mauro Jaskelioff (2014 -- thanks danidiaz for the suggestion):</p>
<blockquote>
<p>When  constructing  a  semantic  model  of  a  system  or  when  structuring  computer  code,there are several notions of computation that one might consider. Monads (Moggi, 1989; Moggi, 1991) are the most popular notion, but other notions,such as arrows (Hughes, 2000) and,  more recently, applicative functors (McBride &amp; Paterson, 2008)  have been  gaining widespread acceptance. Each of these notions of computation has particular characteristics that makes them more suitable  for  some  tasks  than  for  others.  Nevertheless,  there  is  much  to  be  gained from unifying all three different notions under a single conceptual framework. [p. 1]</p>
</blockquote>
<p>Another good example is <a href="https://www.sciencedirect.com/science/article/pii/S1571066108003435" rel="noreferrer"><em>Comonadic notions of computation</em></a> by Tarmo Uustalu and Varmo Vene (2000):</p>
<blockquote>
<p>Since the seminal work by Moggi in the late 80s, monads, more precisely, strong monads, have become a generally accepted tool for structuring effectful notions of computation, such as computation with exceptions, output, computation using an environment, state-transforming, nondeterministic and probabilistic computation etc.  The idea is to use a Kleisli category as the category of impure, effectful functions, with the Kleisli inclusion giving an embedding of the pure functions from the base category. [...] [p. 263]</p>
<p>[...]</p>
<p>The starting-point in the monadic approach to (call-by-value) effectful computation is the idea that impure, effectful functions from A to B must be nothing else than pure functions from A to TB. Here pure functions live in a base category C and T is an endofunctor on C that describes the notion of effect of interest; it is useful to think of TA as the type of effectful computations of values of a given type A.</p>
<p>For this to work, impure functions must have identities and compose. Therefore T cannot merely be a functor, but must be a monad. [p. 265]</p>
</blockquote>
<hr />
<p>Such uses of &quot;computation&quot; fit the usual computer science notion of <a href="https://en.wikipedia.org/wiki/Model_of_computation" rel="noreferrer">models of computation</a> (see <a href="https://stackoverflow.com/a/56034400/2751851">danidiaz's answer</a> for more on that). In the informal functional programming literature, allusions to monads as models of computation have varying degrees of precision. Still, they generally draw from, or at least are offshoots of, a rigorous idea.</p>
What does "a monad is a model of computation" mean
<p>What does it mean exactly when people say "a monad is a model of computation"? Does this mean computation in the sense of turing completeness? If so, how?</p>

<p><strong>Clarification</strong>: This question is not about explaining monads but what people mean with "model of computation" in this context and how this relates to monads. See towards the end of <a href="https://stackoverflow.com/a/3273549/402428">this answer</a> for a typical use of this phrase. </p>

<p>In my understanding a turing machine, the theory of recursive functions, lambda calculus etc. are all models of computation and I cannot see how a monad would relate to that if at all. </p>