Потому что Вы вызвали цикл но не пользуетесь им. Вместо $("option") внутри цикла надо использовать $(this) который возвращает текущий элемент
$("option").each(function(){
var name = $(this).text(),
text = name.substring(name.indexOf('{') + 1, name.indexOf('}'));
$(this).attr('data', text);
});