Can't you ASK why you haven't been promoted? Isn't there paperwork somewhere that gives a reason why you weren't promoted? In the workplace there are reviews ... I would imagine that the military has the same?
Where I work, the philosophy is this: if you are doing something wrong and nobody tells you, then how are you supposed to improve? So we try to always help people by informing them right away if something is wrong, or can be done better, or needs to be addressed. I think this is a fair way to approach reviews as it gives the person being reviewed a CHANCE to change/get better/correct something.
If the powers that be won't tell you (actually, they ARE telling you something by NOT promoting you but the message is not clear), then maybe ASK?
Best of luck in finding your answers.