The problem with fix bid is the formula is hours* rate * risk of bad/fuzzy requirements. If I assume the risk I'll get a project done less expensive. I do have to management the project though.
I've been pretty much exclusively project-based with my Upwork fees. You're right in that it's usually a risk, and scope-creep is always a potential issue, but it's worked out relatively well in my experience. I usually go out of my way to provide the client with my own detailed task summary regardless of his/her job posting content, to ensure we're on the same page and to give us both a flag-in-the-sand as a reference.
The more you work with a platform like Upwork, the better you get at quickly labeling and filtering clients/gigs, and the better you get at finding similar jobs to successful ones you've completed. That's when project-based fees are great because you can trim hours by creating a system and/or template that reduces your project hours over time.
If you simply don't charge per hour you're filtering many clients out already.
The bigger the period is you charge on, (day, week, month etc.) the less people find you interesting, because they just want you for 5hours/2day/1week etc.
On the other hand you have to ask yourself, do you want to work with those people? If yes, charge per hour, if no, don't charge per hour :)