I believe that a restaurant is more 'upscale' type of experience.
A better type of food, perhaps more intricate or fancier.
A diner is more casual, and you can usually order "Americana" style of foods like fried chicken, meatloaf, burgers and fries, as well as breakfast items like french toast, eggs and pancakes.
Also most restaurants will have an open and close time, and may have set menus for breakfast, lunch or dinner. A diner is open (at least in NJ) 24 hours, and if you want breakfast food at 7PM, you can order that, the full menu is available at all times.