Etiquette at sports games depends on a lot of factors, including where you are watching the game. My dad, being the Chicago Cubs ball knower that he is, knows he is supposed to throw back a home run ball from the opposing team at Wrigley Field. A couple of years ago, he did exactly that! Others who didn't grow up knowing the specific traditions of the Chicago Cubs might have looked at him like he had two heads when he did that at the game. After all, this is baseball we're talking about! It's not like soccer or basketball, where you can't keep a foul ball as a fan under any circumstances. A lot of fans would do anything to keep a real baseball from an MLB game, and never come close to even touching one! Others might've looked at him with dismay because he didn't find the nearest kid to give the ball to.
I have noticed a growing trend with fans pressuring people into giving the balls they catch to little kids. One of my friends from high school and her boyfriend were scolded at a baseball game recently for catching a ball and not giving it to a nearby little kid. If they had scrambled for it on the ground with a little kid, I would understand the gripe, but he caught it with his own hands! I do think this pushback against adults keeping home run or foul balls is a bit of an overcorrection from situations like the woman at the Phillies game yelling at a kid to give her the homerun ball that they both scrambled for. Everyone agrees that she was in the wrong for that, but if she had caught it, I think she would've had a right to keep it. You should get to keep a ball if you catch it yourself, no matter how old you are.
Clearly, not everybody agrees with me on this. A video of a fan reveling in catching a ball at a Dodgers playoff game and verbally refusing to give it to a little kid recently went viral. The original poster was trying to make him look bad, but I don't think he looks bad in the slightest. He looks like a happy kid who loves his team and won't forget this memory as long as he lives.