A report is a visualization of the data that was returned by a given search. They allow you analyze the information you uncover through your searches and use it to create compelling stories.
A dashboard is a collection of objects (reports, links, etc.). This allows you combine multiple different "stories" into a single interface. From the documentation:
Use dashboards to highlight
interesting and useful aspects of your
data, link to important searches and
display common reports
Another way to look at it: The Search app contains an Indexing Activity dashboard. This dashboard has several different reports that visualize the state of various indexing operations. Each of these reports could be run independent of the dashboard and the two are not mutually exclusive.