Why use parcelable when you can perform the same task using static variables?

While technically both approaches will work, there are a couple of flaws.

The first is that the static variable is static. If you have two instances of the same activity, they will both reference the same static object. This is probably not what you want.

Secondly, it's considered bad practice to access global variables. It makes it difficult to see what is going on, is difficult to test and you someone (another class) can modify your data. This creates some horrendous bugs.

By passing the data via a Parcelable object it is very clear what you are doing and you avoid both of these problems.

Note that this advice is not specific to Android, rather to Java and programming in general.