Lol, I did my ethics assignment on DF. DF is the most philosophically advanced game out there.
Ok, from my understanding of evolutionary biology, psychology, and philosophy, as well as my experience in living in third and first world countries, I've come to the conclusion that good and evil are only survival techniques. Good is an ideal. People will be more 'evil' if it comes to survival. Ethics is a luxury.
Good is simply 'helping your fellow man', not much more. For example, an evil act is stealing from someone. This is evil because they worked hard for it. In the long run, people will stop working hard and start stealing, which is bad for everyone. That's why the 'good' thing to do is to not steal.
In a similar example, monogamy. Cheating on your spouse is 'evil'. Leaving your baby to die is 'evil'. This is a survival thing.. people who cheat on their spouses have children who are at a significant disadvantage, because they have half as many resources as a child with two parents.
So, anything that harms survival in the long run is evil.
Which brings us to goblins. From what I've been looking at, good and evil only apply to other species in very advanced civilizations. Humans, for example, didn't really recognize black people (Africans) as an 'equal' race, until a few centuries ago. Animal cruelty today is practically unheard of - 80% of us don't give a damn that thousands of living things are killed each day to feed us.
In the same way, Goblins might see humans, dwarves, elves, as a similar species, or an entirely different one. A babysnatcher is little more than a human who domesticates an elephant or dragon and rides it to war. It's a non-ethical issue [Non-ethical means that it's not ethical nor unethical. It's simply an issue that doesn't involve any ethical frameworks at all].
The issue with demons could simply be because demons help them exist. Fighting a demon is stupid - it will piss off the demon and lead to you and all your friends being ripped to pieces. Thus, anti-demonism would be an evil act.
Correct me if I'm wrong. I may have misunderstood the question and answer completely