I have worked for a number of and owned a few small businesses. I have rarely heard any of them admit to an potential employee, " we are flush with cash, I just bought a bigger ski boat and we're shopping for a winter home" or anything similar.
We're small and barely squeaking by is the mantra of many if not most small business owners. Maybe they are, maybe they aren't. As long as your paycheck is correct and on time none of that is your concern. It's not your company. You didn't take the risk and invest the long hours to create and run it.
The answer to your question depends a lot on where you are located, the type of business it is, how crappy your current work environment is, your background and a number of other factors.
In my experience however, before getting hired is the absolute best time to negotiate. Especially with small companies and especially in areas with limited opportunities or if your work background is less than ideal.
They say they are cash strapped now, guess what when you ask for a raise in whatever amount of time they say they will "revisit" the topic? Very likely they will say they are cash strapped there as well.
Once you are working there, you have inertia in that role at that company. It is less likely you will leave if they refuse a raise or slow play it until you give up.
If you are going to try to negotiate for more, do it before you agree to employment. After you work there, all bets are off and you have much less leverage than you think.