No they do not give you a packed lunch! - you either eat ashore or get back on board. On port days usually the main dining room is closed so your options will be the WindJammer buffet or Johnny Rockets.
You must make sure that you do not go short of food on a cruise and never spend unnecessary money ashore on food. You can sneak food ashore if you like and pretend it's for feeding the birds. I've seen people do this. But whatever you decide never try to take food into the USA or its' territories as this is seen as an heinous crime and is strictly dealt with, it's even worse than mugging and pillaging. Neil's son Fala.
No packed lunches are provided so you either eat in the town you are visiting or get back on the ship to eat. Don't worry you certainly won't starve.