Many do, but not all. Also the cost to post a job is trivial compared to the cost of filling the role.
I don't know what the OP was thinking but it is very common for companies to say they are hiring when they don't have a specific position to fill at the time. First, because it is a sign of health, particularly if you want to position yourself as growing. Second, a lot of HR people want to have a pool of people to contact when a position opens.