In the major cities you’ll need little cash. Contactless payment is the norm. Most of the time you’ll automatically be charged in Euros or you’ll be given the option of Euros or USD, but occasionally you’ll come across a hotel, restaurant or shop that attempts to charge in USD. Simply decline the conversion (probably twice) and you’ll be charged in Euros.
Some smaller shops or take-away restaurants may only accept cash, but they are a minority. In my last two trips to Spain (2022 and 2023), two places in Zaragoza and one in Burgos were cash only. We use cash for small purchases like a soda, pastry, or snack.
Regarding restaurants, if there’s a special one you want to go to, make a reservation. Your question says it all. Do you want a scheduled dinner time or be spontaneous. Since we never know when we’ll be hungry, how hungry we’ll be, or what we may feel like eating, we seldom make a reservation. Also, we seldom have difficulty finding a place to eat before 8pm or later, especially in the cities you mentioned. Those establishments will most likely cater to tourists and be very casual. In small towns it’s more difficult to find restaurants that open early.