Вы создаете много кнопок с одинаковым идентификатором, поэтому document.getElementById('script');
всегда будет возвращать один и тот же первый элемент с этим идентификатором.
Вы можете попробовать что-то вроде этого:
snapshot.forEach(function(childSnapshot, i) {
var childData = childSnapshot.val();
number = childData.Number;
table.row.add( [
number,
`<button id='script${i}'>Download Files</button>`
] ).draw( false );
button = document.getElementById(`script${i}`);
button.onclick = function(){ myScript(number)};
});