this = este/esta/isto that = esse/essa/isso/aquele/aquela/aquilo
the difference is in the distance from your point of view to the object you are talking about Este/esta/isto should be used to talk about something really close to you, like an object you are holding or something around you for an example (these words should be used but they are not commonly used, instead we use esse/essa/isso for almost everything) Esse/essa/isso should be used when talking about something not that far but not that close. Example: Me traga essas laranjas aí/Bring me these oranges over there. Aquele/aquela/aquilo are for something far away, a distant house, an high mountain, etc
Is it not better to translate this as: "This skirt has a butterfly in it"? that uses "tem"
Well, "in skirt" is definitely wrong, but the sentence "She has a butterfly on this skirt" could be right in certain circumstances. In a general context like here "tem" (used instead of "há") is best translated as "there is" or "there are" I believe.
I'm a tailor who keeps lots of wool and vintage cloth...."There is a butterfly/moth in that skirt" is a nightmare for me!!! Moths can ruin old cloth :-(
I try to explain it here: http://www.duolingo.com/comment/536217.
To save you reading all that, here's a summary: strictly speaking a word like "este/esta/isto" should mean "this" and a word like "esse/essa/isso" should mean "that". This distinction has mostly been lost in Brazilian Portuguese and sometimes Duolingo translations support that view and sometimes they are more strict. The net result is that native speakers are frustrated and learners are confused.
Can't it be interpretated as (você) tem uma borboleta nesta saia? I don't get why the translation "you have a butterfly in this skirt" is wrong.