События работают - так что может быть проблема с вашей логикой ...
if(replyTxt.value==replyTxt.defaultValue) replyTxt.value='';
Где вы устанавливаете replyTxt.defaultValue? В вашем примере вы этого не сделаете - поэтому логика никогда не сработает. Попробуйте это ...
var replyTxtDefaultText = "Write a reply";
var replyTxt = document.createElement("input");
replyTxt.id="replyTxt";
replyTxt.type="text";
replyTxt.value=replyTxtDefaultText;
replyTxt.onfocus = function(){if(replyTxt.value==replyTxtDefaultText) replyTxt.value='';};
replyTxt.onblur= function(){if(replyTxt.value=='') replyTxt.value=replyTxtDefaultText;};