I can think of 5 reasons.
1) A slow start. While the government was busy changing its leaders, the NO campaign had plenty of time to prepare. The YES side appeared to be blind-sided by the intensity and focus of the NO people, and subsequently spent the rest of the campaign on the back-foot.
2) Simple Messages. The Yes side failed to create simple reasons why a YES vote would be advisable. They had no equivalent to “Keep our commissioner”, “Tell Mandelson where to go”, “If you don’t know, vote NO”. On the YES side it was just blandishments: “A stronger voice in Europe”, yadda, yadda.
3) Populism: The NO campaign was much more populist, much more likely to appeal to the man on the street, whereas the YES campaign conveyed a perception that “we know better than you”. The NO side capitalised on this, and particularly benefited from support by the highly effective communication skills of popular contrarians such as Eamonn Dunphy and Shane Ross.
4) Fear: The YES side didn’t do enough to allay people’s fears. One woman on the radio voted No yesterday because she didn’t want her son to be conscripted! Others feared unrestricted abortions and goodness knows what else. A secretive French plan to assault the Irish taxation system was mentioned. Thousands of people were scared into voting no.
5) Confusion. This was one seriously complicated piece of legislation. Few would have the time or inclination to tease out the minutiae. Even if you wanted to vote YES, you might still have niggling doubts. Better the devil you know, then.
Whatever your views on the matter, it has to be admitted that the NO side ran an extremely smart campaign. The YES campaign didn’t do enough to anticipate what they might do, and now they will reap the whirlwind.