Forex is definitely a zero sum game. There's always someone on the other side of the trade, and since it's traded in pairs, any increase in the value of one currency can be seen as a decrease in the value of another.
Stocks are a little different. A stock can rise due to a company doing well and gaining value. Yes, when you buy, someone else sold those shares, but that person may have already made a tidy profit. Some person losing money or some currency losing value doesn't have to be a part of every stock transaction.