What is the proper way to say that someone received a prize / achieved a certain rank as a result of his participation in a contest or competition? I would also like a brief explanation, if it's more about it than being a mere collocation.
Well, you enter into a contest, and you receive a prize in a contest. So, I'd guess it's just a combination of those two collocations.
But, on second thought... You received the prize because you were in the contest; or, in other words, you received the prize because you were part of the contest.
So, "for" doesn't work because that would imply you received a prize because you created / held a contest, and "on" wouldn't work because it doesn't establish the important fact that you were actually a participant in the contest (also, partly because both of those other prepositions would be jarring. I've never heard anyone use anything other than "in" in this context).