I assume that you wanted to write that the results are “different” 
Looping over an RNN is quite common, e.g., in sequence-to-sequence models (see, e.g., the Seq2Seq PyTorch tutorial 9). Check the code of the decoder(s). Not that the forward method of the decoder does not contain a loop but only takes one word (i.e., one time step) at a time. The loop is outside in the train method.
Both approaches are fine, you only need to take care that you accumulate the loss properly; best check the tutorial link above. I also think you cannot use bidirectional=True when creating your nn.LSTM. Other than that, there shouldn’t really be a (major) difference to process a sequence “manually” using a loop or let nn.LSTM do everything under the hood.