Time is definitely an issue, as is concern for Juliet's well-being. He appears to want to tell them (and Tybalt too) but says he has to wait for the right occasion to do so.
There are a couple of other reasons why Romeo keeps this secret. One is that he is sensitive and his friends will most definitely mock him (just listen to what Mercutio says when he is looking for Romeo after the party). Also, Mercutio tends to sexualize everything, and although sex (or the promise of it) is certainly a motivating factor for Romeo, he also wishes to frame his new relationship in terms of love. It would not be possible to flounce around wearing 'love's light wings' around his friends--Mercutio would bring him down to earth with a crash. He also says something that suggests he really can't trust them to understand (he says of Mercutio...he jests at scars that has never felt a wound).
So timing is definitely a factor, but also, perhaps, is the fragile condition of his heart. Perhaps he wishes to preserve the emotional and spiritual bliss he experiences with Juliet without having it marred by the crass commentary of his friends, at least temporarily.
Thanks for the clarification. One reason, at least to me, he never got a chance to tell them. When he enters in act 3 scene one, Tybalt and Mercutio were already in a heated battle of words. Romeo feels the need to get in between them to stop what was happening. He kinda does tell Tybalt why he doesn't want to fight him but Tybalt and the others don't understand his riddle. Don't forget, the only people that even knew that Romeo fell in love with Juliet and just got married are the Nurse and Friar Laurence.
Sorry, I should have clarified that the "reason for his dramatic change of mood" being his marriage to Juliet...so, the question should be: Why does Romeo keep his marriage to Juliet a secret from his friends?