As an aside to anyone else wondering (as realise post was about boys)- husbands should wear shorts below the knee, I know someone who was pulled up by many a security guard in Malls on this - the guy concerned was from Australia and could not get his head around this!
Yes, they can wear shorts anywhere. It won't be a problem. I suppose if you go to an upscale restaurant with a dress code, it might be a problem. But you can always call ahead and find out the dress code. Remember, we're in the Middle East - men/boys can wear what they like - women on the other hand... ;)
Anyone can wear shorts in Nandos. In Ramadan they should cover the knees for a man or a boy who is past puberty (or who looks like he might be). Theoretically this is the case all the time but no one seems to care about male shorts just above the knee outside of Ramadan.
They're probably alright for casual dining places as you mentioned in your last post. You might want to see what the other children are wearing during Ramadan though as people tend to dress more conservatively.