Set Difference of Two RE Languages - An Intuitive Idea of Why It's Not Closed
Given a language $L$, $L$ is RE if there is a TM $M$ such that $L(M) = L$. $L(M)$ is the set of words which $M$ accepts and it must be equal to $L$; words not in $L$ must cause $M$ either to reject or to never halt. It is not sufficient for $L$ to be a subset of $L(M)$, which is why your reasoning is incorrect.

Given RE languages $A$ and $B$, what makes $A \setminus B$ not RE (in general) is not the problem of knowing whether the input is in $A$; since $A$ is RE, there is a TM $M_A$ which you can simulate to find out (and if $M_A$ does not halt, the input is not in $A$ and, hence, not in $A \setminus B$ too; so there is no need to halt at all). The problem is that, to accept an input $w$ which is not in $B$, you need to simulate the respective TM $M_B$ on $w$ and accept if $M_B$ does not halt; hence, you need to solve an instance of the complement of the halting problem, which is (famously) not in RE.