Say I buy coin from Coinbase / Localbitcoins. If I want to move what I just bought into another wallet, it will be charged?
If you move bitcoins from one address to another, a mining fee should be paid (or miners will probably never process it). The appropriate fee depends on the size of the transaction (in bytes) and not its value.
Services that hold bitcoins for you (such as Coinbase, LocalBitcoins, and exchanges) may or may not charge you a fee to send bitcoins for you. It is up to them to decide what fee to charge, but they pay the mining fee.
I also heard when you buy, in general the buy price is about 3% higher than market price. Same when you sell. This mean if I trade at 6% higher, it will only be breakeven minus the fee (unless I keep them in the online exchange wallet)?
That is correct. Some people/companies buy and sell bitcoins as a service. That's how they make money.
Another question is, if I want to keep coins in H/W wallet for safety, I have to consider fee and the time for transaction confirmation which is tired to the fee. If there is a big drop and gain, everyone wants to do the same, the time will take longer even if you choose fast transaction.
Not quite. Generally, the higher the fee that you pay, the sooner the transaction is confirmed, though there are exceptions. You always have the ability to pay a fee that makes it very likely that your transaction will be in the next block.
If you have bitcoins that you may want to sell at any moment, then you should keep them on an exchange.