The first and main reason is, that when you have multiple containers/VMs on a single server, what really happens is that "peak" or "burst" CPU matters more, in terms of what the user (whether developer doing testing, or users of a website that are browsing it) sees as performance.
Only in very memory-intensive tasks would these servers outperform (because the memory bandwidth is dedicated to just your server and is not shared). Then again, being able to bump from 2GB to 4GB (provided the application can take advantage of it) of RAM might well minimize the issue due to caching or other optimizations.
Second, 2GB RAM is (sadly) just not enough. As an example, the Zimbra mail server barely runs in 2GB; and many other Java based programs are only fast once they have chewed up a couple hundred MBs of RAM.