Efficient way to store multi choice in a column with few options
Well, it is always difficult to give a generic answer to design questions.
Best would be to study the normal forms and see how that can be applied to exactly your situation! :)

Having said that, it sounds like you want to store reporting data (OLAP type table/database) so I base it on that.
In OLAP, you can see all different types of items which can be selected 0 or 1 time as Attributes to whatever you like to consider the 'Fact' and can be stored in the 'Fact' table. You can opt to not use separate tables for your fruit, sandwiches or drinks but only have 'check constraints' in your Fact table columns.

However, if your requirement is a little bit more complex, I'd opt for one Fact table, one for fruit (where you can store more lookup data per fruit), one for sandwich (with the same requirements as for fruit but possibly a different set of attributes/columns) and one for drinks. I.e. One extra table per 'selectable attribute'.
Now, if someone can choose More then 1 of anything, it gets more complex and you need to consider other options (link tables or such).