Upwork's terms and conditions are clear cut and their user interface is slick and easy to navigate. They've got a regular stream of high quality job postings that can easily be filtered or searched through. Bids are hidden (unless you're a pro member; I am not), which I think grants incentives for asking for real-world wages. When you can't see that other people are bidding ridiculously low amounts, it's not as disheartening and doesn't encourage a race to the bottom.
The community is good: many active forum posters and quick response times from team members. Everyone is kind, excepting of course the occasional self-important client. Chat between freelancer and client works well and doesn't require being on the site to use, as emails are sent promptly and can be responded to in lieu of typing in the site's chat box. This makes responding to clients when I only have my phone with me a breeze.
Because freelancers are given a limited number of "Connects" a month—basically a ration of how many jobs can be applied to—there is less of a reason to shotgun job prospects but rather to carefully craft bids to clients on an individual level. At first blush it seems restrictive, but it, I imagine, helps tremendously with the quality of the site.
The software Upwork has for tracking time works well on Linux and guarantees that an hour worked is an hour paid. This is probably my favorite aspect of the site, because you don't end up thrall to your client's payment schedule, even if they go AWOL. I have never not been paid by Upwork, and I have always received my payment in a timely manner via ACH transfers.
Upwork does these things very, very well.
Upwork recently bumped their freelancer fee to %20 of earned income from what was once %10. This means that the amount of money made has dropped pretty dramatically. This fee, 20%, is staggered and will drop depending on how much money you've made from a client, which means that long-term contracts and relationships are prioritized over finding new clients. While I still do quite a bit of work on Upwork, I have almost entirely stopped looking for new work and only do things for clients who reach out to me personally. The increased fee was damning to Upwork, particularly to non-Western freelancers who are already working for pittances and will take much more effort to reach lower fee tiers. Freelancers railed against the fee increase, but the company promised that it would benefit freelancers in the long run. I have seen no evidence of this, and many in the community feel it was just a money grab.
The site also experiences a lot of downtime during normal US working hours, as you can see from https://status.upwork.com/ Much of this is caused by scheduled maintenance, but the frequency and length of these maintenance periods are frustrating.
There is also a clear lack of support for Linux-using freelancers. I said earlier that the time tracking app works well, but that's because whatever non-Upwork entity maintains the Upwork time tracker package in the Arch User Repository has already set up a way to get around what was a pretty serious bug. For months Linux users with newer versions of SSL libraries couldn't use Upwork because it was dynamically linked to an older version. Support only ever referenced the community's solutions, which involved jumping through hoops by downgrading software or installing multiple libraries on the same OS. The developers behind the software did not appear to care or exist; we never saw status updates on the bug that affected a great deal of us. I am still not sure if the issue was ever resolved on the official Upwork download page.
Finally, and this isn't a criticism of the software per se, but of the community, clients are frequently sole proprietors and small businesses; they're not expecting to pay much, and 90% of the time they want something done in WordPress. Upwork might be good for getting your feet wet with the freelancing world, but for highly skilled Western consultants it's harder to find a competitive wage and even harder to find something more interesting than WordPress.
Upwork is a merger of both oDesk and Elance and has a much more solid foundation that more recent competitors. It's probably best for finding more entry level work. Although some clients request experts, few of them are willing to pay an expert's rate, so you may need to look elsewhere depending on your level of expertise.