It kind of depends on the server and how busy they are. And also language barriers.
We had a great experience on RCCL in an Italian restaurant. I am vegetarian and so was our Indian waiter. He helped me pick out things and let me have extras. We tipped well and ate there 2 more times. On Princess a while back, their Romanian staff at their trattoria was not grasping the whole vegetarian concept. Instead of an entree, I just wanted more of the pasta course. One of them finally understood and gave me a little extra, but I ended up with a plate on spaghetti in place of an entree. Stingey and not worth the cover charge.