Unlike mutual funds, you can't always buy an ETF with zero transaction costs. Like any stock, an ETF has a spread, which can vary from one penny to many dollars. Spreads can vary over time as well, being small one day and wide the next. What's worse, an ETF's liquidity can be superficial: The ETF may trade one penny wide for the first 100 shares, but to sell 10,000 shares quickly, you might have to pay a quarter spread.
Trading costs can quickly eat into your returns. Understand an ETF's liquidity before you buy, and always trade with limit orders.