serializable مربوط به جاوا هستش و برای انجام سریالایزیشن و دیسریالایزشن با استقاده از reflection متدهای لازم رو به صورت پیش فرض پیاده سازی می کنه این روش هزینه بالایی داره و خود اندروید پیشنهاد می کنه که از این استفاده نشه.
parcelable توسط خود اندروید پیشنهاد شده و شما باید متدهایی که برای عملیات deserial و serial پیاده سازی کنید این روش از code gen استفاده می کنه پس در حالت البته اگه experimental رو در gradle فعال کنید، خود متد هاش رو بصورت پیش فرض پیاده سازی می کنه و نیازی نیست که شما اونا رو پیاده سازی کنید.
نکته : اگه از parcelable استفاده می کنید از Gson استفاده نکنید، به جاش بیاد از kotlin serialization moshi (در حالت code gen) و jackson استفاده بکنید پرفرمنس بهتری بهتون می ده علی نصرآبادی اینجا مقاله خوبی درباره این موضوع نوشته .