Потому, что скрипт срабатывает раньше загрузки разметки
<div id="ddd"">Click</div>
<script>
var bu = document.getElementById('ddd');
bu.style.color='red';
</script>
или
<script>
window.onload = function(){
var bu = document.getElementById('ddd');
bu.style.color='red';
}
</script>
<div id="ddd"">Click</div>