Why is there a difference in the behavior?
Your first assert expression is looking for a string in a larger string, your second expression looks for hay which is not a string but a string[]. To flatten the array, use:
assert(canFind(hay.join, "111"));
