On our past two cruises, my ds, age 3 first year, age 4 last year, has worn dressy short suits to dinner on atleast one evening. This means dressy shorts with dress shirt and coat or dressy vest, knee socks and saddle shoes. Outfits that he wore to church on Easter Sunday. I think these are adorable on the little boys and are even more dressy than khaki pants and a polo-style shirt. If your son already owns some of these, do not hesitate for him to wear them, you should see how some adults choose to show-up for dinner! I have seen adults in cut-off blue jean shorts and halter tops, totally tacky for dinner, but yes they are seated right along with everyone else in their dresses and suits. For older boys, 7 and up, casual pants and collared shirts are great and possibly a suit for formal night. You will see some little boys in tuxedos, but personally I would not waste the money. The key here is "good taste" and that is what Disney is after by asking you not to wear shorts in the dining room.
Have a great cruise!