CFD stands for Contract for Difference. It is the contract between two parties that states that the seller will pay the buyer the difference between the current value of an asset and its value at the contract time.
Simplified, it means that the two parties are trading the difference in value of an underlying asset, not the asset itself. For example, trading the CFDs of a share means that the buyer will receive (or pay) the difference in share price at the contract time. There is no share trading involved.
A Contract for Difference is a type of derivative: the price of a CFD is derived from the value of some other asset. Often with CFDs it is based on the price of a share, but it can relate to effectively any financial instrument.
CFDs are a popular trading instrument and relate to currencies, shares, market indices, commodity prices...
CFDs allow investors to take short and long positions and have no fixed expiry date or contract size.
CFD trades are conducted on a leveraged basis. This means that the trader deposits a certain amount and (automatically) borrows additional, usually much larger, amount. This increases the level of risk if proper risk management strategies are not put in place. The potential result is a loss that is much higher than the original deposit.