There is no reasonable moral objection to homosexuality. Sin, however, is not a matter of morality, but a matter of religious discipline and of what is believed to be divine law. Since no one has any objective knowledge of divine law -- in fact, divine law has no objective existence -- what is considered a sin varies from one religious group to another. Thus, for example, it was considered a sin for Uzzah to reach out and take hold of the Ark of the Covenant to keep it from falling, even though there was no reasonable moral objection to his doing so. It was formerly a sin for a Catholic to eat meat on Friday, and is still a sin for a Catholic to eat meat on Good Friday, even though there's no particular moral reason why Friday should be distinguished from Thursday. My great-grandfather believed that it was a sin for women to wear pants, although there's no reasonable moral objection to women's wearing pants.
For the believer, something is a sin because his religious community believes that it offends God or hinders his path to God in some way. Such beliefs are not determined by reason, and it's pointless to try to find a rational explanation for them. What it comes down to is that something is a sin in a particular person's mind because his religious authority -- be that a person, a text, or a tradition -- says it is.