<p>It's because original LSTM model only applies dropout on the input and output layers (only to the non-recurrent layers.) This paper is considered as a "textbook" that describes the LSTM with dropout: <a href="https://arxiv.org/pdf/1409.2329.pdf" rel="nofollow noreferrer">https://arxiv.org/pdf/1409.2329.pdf</a></p>

<p>Recently some people tried applying dropout in recurrent layers as well. If you want to look at the implementation and the math behind it, search for "A Theoretically Grounded Application of Dropout in Recurrent Neural Networks" by Yarin Gal. I'm not sure Tensorflow or Keras already implemented this approach though.</p>
Dropout for LSTM recurrent weights in tensorflow
<p>Tensorflow's <code>DropoutWrapper</code> allows to apply dropout to either the cell's inputs, outputs or states. However, I haven't seen an option to do the same thing for the recurrent weights of the cell (4 out of the 8 different matrices used in the original LSTM formulation). I just wanted to check that this is the case before implementing a Wrapper of my own.</p>

<p>EDIT:</p>

<p>Apparently this functionality has been added in newer versions (my original comment referred to v1.4): <a href="https://github.com/tensorflow/tensorflow/issues/13103" rel="nofollow noreferrer">https://github.com/tensorflow/tensorflow/issues/13103</a></p>