There is no fruit in this thing. The name comes from the way the crust cracks in the oven. What you are actually eating is 48g of carbs, most of it refined flour and sugar, packed into something you finish in four bites. A bun at 310 calories is more than a bowl of rice, which sits around 260, and it comes with far less staying power. Most people who buy one at 3pm are hungry again by 5.
The topping is where the fat hides. That 15g crust adds around 95 calories on its own because it is made with lard or shortening plus a big hit of sugar. The Centre for Food Safety tested pineapple buns in its bread survey and found them low in sodium and moderate in fat compared to cocktail buns and croissants, so among Hong Kong bakery items this is actually one of the tamer choices at roughly 10g of fat.
Size varies a lot between shops. A small bakery bun can be 65g and closer to 250 calories. The big fluffy ones from the famous cha chaan tengs in Mong Kok and Central push 100g and land near 380 calories. If the bun is warm and the crust is thick and glossy, assume the high end. Add a slab of butter (bo lo yau) and you are looking at around 390 calories before your milk tea arrives.