I think theaters should offer real rewards programs and a option where people can pay a monthly fee for so many viewings a month for a discount. The whole idea is to get more people into theaters more often. The problem is that ticket prices being what they make such an approach prohibitive because the monthly fee would have to be 50-$60 which is the typical cost of cable.
Retailers probably give the movie companies a great deal. The spinoff toys, clothing etc are great for getting parents into stores so from a marketing perspective the retail stores want that stuff and will pay handsomely to get it. The theatres, on the other hand, won't draw any more customers in by displaying movie related merchandise since you're already there to see the movie.