I would think that the problem of doing this kind of simple sentiment analysis is "pointwise enough" on words that even a simple logit or probit model trained purely on frequency analysis of words (so neglecting all of the sentence structure, ordering, et cetera) should be able to get good enough results. The additional power of an LSTM can end up leading it astray if a simpler model would've been sufficient to get a good fit, just because of the problems of gradient descent.

Moreover, it's not true that in limited dimensions, convolutional nets or dense layers are incapable of learning global information if it's "simple enough". The power of an LSTM really only becomes apparent when you have long sentences and you need to gain insight into some complex dependencies between different parts of the sentence - for instance, parsing tasks are well suited to be tackled by LSTM. Notice that you don't need to parse a sentence to determine the sentiment of the person who wrote it!

Still, if your accuracy with a more complex network remains low even on your training dataset, that's a sign that something is wrong with the training procedure. I'd advise you to check your code to make sure there are no mistakes in it. If you get good results on the training set but not out of sample, that just means the LSTM is learning garbage features and you need to correct for overfitting.