Cloud mining can be profitable. It depends on several factors though and you have to do the math taking into consideration the price you pay per GHs and the current price of BTC (plus network difficulty and many others).
Cloud mining companies need to pay their expenses (plus profit) so if they have $1000 for expenses and they make 10BTC they will sell ~3-4BTC for expenses (~$340 per BTC) and distribute 6BTC to everybody else. If the BTC price goes to $1000 they would need to sell ~1BTC and distribute 9BTC... etc.
The above is an oversimplification but you get the idea.
Having said that if you expect BTC to reach $1000 then maybe it's better to buy BTC and re-sell them later. There is a fine line between current prices and short-term and long-term expectations of BTC price (and other factors) that will determine what is more profitable.
The word 'expectations' means risk and since the price of BTC was falling for so long most cloud mining contracts where not worth it; thus the bad reputation for cloud mining.