Think of a blockchain as the internet, smart contracts as the World Wide Web, and decentralised applications as YouTube or Facebook.
A dApp is essentially a decentralised application or program that is completely open source. This means that where a traditional App runs on a single network of computers, dApps are run on top of a decentralised, peer-to-peer network, of which no single entity has complete control.
In a peer-to-peer network, information is continuously shared between participants. The higher the number of participants in the network, the stronger the network becomes. Users also provide the computing power necessary to keep the network running. To incentivise them to do this, they receive tokens native to the platform as compensation.
With a dApp, users are also empowered to vote on any changes to the software using a consensus mechanism. Imagine a Wikipedia where all the contributors have to agree on whether Freddie Mercury was from India or not, or whether a Caesar salad was invented in 1924 or in ancient Rome.
The Ethereum blockchain is the main blockchain on which developers build dApps and their white paper defines three kinds of dApps: apps that manage money, apps where money is involved (but also requires information from other sources), and apps in the “other” category, which includes voting and governance systems. However, as with any technology that’s so new, this definition is constantly changing and new use cases are being found every day.