hyper beam does more damage if you're using it at every available opportunity. body is more efficient if dodging, but given snorlax's high HP pool you can afford to sacrifice HP for DPS, since you're probably overhealing it with hyper potions anyway..
HP value is linearly related to stamina, you don't get bigger HP increases at higher stamina values compared to lower ones. the difference of 7 stamina depends on your level but it makes more of a difference on pokemon with lower HPs.
a snorlax that has ~250 HP doesn't gain as much relative benefit from having 5 extra HP due to stamina compared to something like cloyster or alakazam that only have ~70 HP.
having 15 attack and defence are the most useful stats you could get on a snorlax, because those are it's weakest stats, and you shouldn't be disappointed with that snorlax. 38 / 45 is not average, and even if it's ivs weren't good, a weak snorlax is still stronger than most pokemon, because ivs are the least important factor. moveset and species are far more important.
high ivs dont make shit pokemon good - an onix with 45/45 is still an onix with crap stats, and low ivs dont make good pokemon bad - a snorlax with 0/45 ivs still has higher base stats than most other pokemon even with 45/45 ivs. really getting jaded by this iv circlejerk on rare pokemon.
same goes for movesets. 0/45 db/dc dragonite still outperforms almost anything on offense because dragonite's base attack is still much higher than most pokemon with +15 to their base attack, while +15 attack doesn't even come close to making up for the dps loss between shit like twister / bulldoze compared to hydro pump / fire blast