Leverage, tax, ease of taking short positions and the risk of losing more than your investment are the main differences to a stock. Note, CFDs are a derivative on a stock hence the similarity in the definition but different features. Like a future, you're taking a position without owning the underlying stock, so you're not paying the upfront price of the stock. Instead you're required to place margin which is a fraction of the stock price, hence your position is leveraged. (There are differences from a future, usually CFDs are not a fixed duration but often charge funding to hold overnight). Because ones profit and loss is the change in the price, losses can exceed your margin or money originally invested.
CFDs and Spreadbetting also have different tax implications than stocks depending on where you are.
Short positions are easier to take.
As you're not buying the underlying stock there are other differences, you don't have voting right for example, and it's not about the units of stocks you trade but the size of the CFD which can be more flexible.
Also you're at the mercy of the provider and the spreads and charges they charge.
In short, the advantage is that they let retail traders bet on (short term) price changes easily with less capital and infrastructure, and possibly more favourable tax treatment, with the disadvantage of risking to lose more than the money invested.