"...would it be easier to stay in Bingen or Rudesheim in order to make getting to and from cruise easier? "
Rheinfels is in St. Goar, on the cliffside overlooking the town.
Bingen Base: Park at your accommodations; cruise to St Goar; walk or shuttle to Rheinfels, then do the same back down; train back to Bingen. The boat schedule for getting to st Goar (14:30 - 16:10) means you will reach Rheinfels kinda late after the walk up... doors close at 17:00.)
St Goar Base: Drive into town (if you want lunch;) drive up the hill to Rheinfels, then down afterward and park at accommodations; train to Bingen, cruise back to St. Goar.
Basically the same task either way except that you will have the CAR for getting uphill to Rheinfels, a small advantage. However, the car trip to Burg Eltz and then to Trier will be shorter for you from St Goar than from Bingen.
"Are these towns also scenic, with a variety restaurants?"
Bingen has a developed waterfront that provides a nice view across the river over to Ehrenfels Castle ruins. The NH hotel there enjoys this view. Not so much other Bingen hotels, however:
https://media-cdn.holidaycheck.com/w_1280,h_720,c_fit,q_80/ugc/images/49ae7b3e-32a5-3d2a-8987-6a0c2650c5d2
Rüdesheim is on the opposite river bank, which adds a ferry crossing to your list of steps for the cruise + train ride back to town. The views across the river are not as impressive as those from Bingen. Hotels there are set back a ways from the river as well. The nicest views are had in St. Goar IMHO, especially nice from the Hotel Rheinfels and Rheinhotel St Goar, across from Burg Katz:
https://upload.wikimedia.org/wikipedia/commons/e/e6/Sankt_Goarshausen_Burg_Katz_2012.jpg
From Rüdesheim - which is the most touristy of the Rhine towns and DOES have a lot of restaurants - the "scenic" views across the river to Bingen are not nearly as nice. Altogether, staying on the west bank probably makes more sense.
St Goar should have enough restaurants to accommodate you for such a short time. Or try Boppard, 10 minutes up the road. St Goar's offerings include Alla Fontana, a place I try to patronize whenever I'm in the area. St Goar's restaurants:
https://www.stadt-st-goar.de/restaurants-in-st-goar/#/pois