Don't feel like you need to give your real number just to avoid awkwardness. Seriously, you can just say no or give a fake one - most places won't push back, and if they do, you can politely decline. The transaction goes through either way. Nobody's going to remember or care if you walk out without their rewards program.
That said, there's a layer beyond what's usually mentioned: some restaurants use phone numbers specifically to identify repeat customers so they can study *where* you sit, what you order, how long you stay, and pair that with demographic data they bought elsewhere. They're not just tracking that you spent money - they're mapping behavioral patterns. A burger joint might notice you always order the same thing at 6pm on Wednesdays, then sell that insight to food suppliers or use it to adjust their staffing. It's less about selling your number to random marketers and more about using it as a key to unlock other data they already have on you.
If you do want rewards legitimately, use an email instead and keep it separate - most modern systems let you choose. But honestly, the easiest move is just declining. You're a one-time or occasional customer to them either way, and their system works fine without it.