Are two central concepts from DCAT (the Data Catalog Vocabulary). Here are the definitions DCAT gives for them:
Dataset:
A collection of data, published or curated by a single agent, and available for access or download in one or more representations.
Distribution:
A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above).
In practice you will often see for instance a spreadsheet, which can represent the same information in both formats .csv and .xlsx. That gives you one dataset with two distributions (one of each format).
This affects the way data is described and stored in mash, since some metadata is attached to the distributions (filetype, filesize and the like) - while most of the metadata lives on the dataset.
The dataset is the core part of mash that links to other metadata concepts like lineage, conformance, ownership and the like. Every metadata model that mash implements is somehow liked to the dataset.
Data in mash is stored attached to distributions, and MeshRepositories provide the ways of storing both your metadata and your data tied to it. One repository might contain your local stuff, while another might be connected to a blob storage that contains remote stuff.
When referring to data you will typically want to use datasets, and when you need their contents you will find the relevant distribution within and load its data into your tool of choice - often with a premade utility function that accepts a dataset.
Read more about this on the page about Repositories and Storage.
Recommended next read: