When you book the inside room, book for the same subcategory that you want for a balcony room. (i.e, if you book the lowest inside category, you’ll get the lowest balcony category.) I always have an idea of exactly which room I want, I make sure it’s still available, and then when I call the rewards people (with the deck plan up on my computer for reference) I specifically ask if I can have that particular room. I’ve always had good luck with a good phone rep.
You do NOT get the additional specialty dining, but, do the math. On our upcoming 10-day cruise, through the upgrade alone (before the $900 in additional discount reward credits) I saved over $2k… for that savings, I’ll pay for my own additional!