I had never heard of these before until yesterday, but it seems they are essentially a way for smaller investors to make extremely leveraged bets by putting up very little margin (hence the bucket shop reference).
In finance, a contract for difference (or CFD) is a contract between two parties, typically described as "buyer" and "seller", stipulating that the seller will pay to the buyer the difference between the current value of an asset and its value at contract time. (If the difference is negative, then the buyer pays instead to the seller.) In effect CFDs are financial derivatives that allow traders to take advantage of prices moving up (long positions) or prices moving down (short positions) on underlying financial instruments and are often used to speculate on those markets.
CFDs, when offered by providers under the market maker model, have been compared to the bets sold by bucket shops, which flourished in the United States at the turn of the 20th century. These allowed speculators to place highly leveraged bets on stocks generally not backed or hedged by actual trades on an exchange, so the speculator was in effect betting against the house. Bucket shops, colorfully described in Jesse Livermore's semi-autobiographical "Reminiscences of a Stock Operator", are illegal in the United States according to criminal as well as securities law.