Often you can't buy a futures contract on what you are actually trying to hedge, so you have to buy a future on a different (but very similar) asset. This is common in commodities, where producers buy a commodity that's similar to the specific commodity that's traded on futures markets (WTI Oil futures, for example, are for a very specific quality of oil to be delivered in a specific location).
So I may produce one type of oil that has one price (call is S) and have to trade futures on another type of oil that trades at another price (call it S*). If those two prices diverge, then I have a source of risk even though I've locked in a price via my futures F.
Take an extreme example. Let's say I produce S that is currently selling for $100, and I want to sell mine in 1 month. I don't want to risk that price going down, down, so ideally I would use a futures contract. There are no futures contracts on S, but there are futures on a very similar product, S*, that is also currently trading for $100. I enter into a 1-month futures contract F on S* at $101 (the expected price of S* in 1 month).
The price of S stays stable and gains $1 in one month, which matched my expectations. However, for some reason, the price of S* collapses to $50. I now can sell my S for $101, but I must pay $50 on the futures contract.
So "basis risk" is the risk that the price of the underlying asset of the futures contract (S*) diverges from the price of the asset that we're actually hedging (S).
Clear as mud?