Semplicemente perché la condizione non viene più riletta, puoi risolvere utilizzando setTimeout()

codice:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
	var wActive = true;
	var numAttuale = 10;
	function upd() {
		if(wActive === true) {
			if(numAttuale > 0) {
				$("#secs").html(numAttuale - 1);
				numAttuale = parseInt($("#secs").html());
                                if(numAttuale>0) setTimeout("upd()", 1000); else alert("Ciao");
			}
                        
		}
	
        }
        
        setTimeout("upd()",1000);
</script>
<div id="timer">Attendi <span id="secs">10</span> secondi</div>