I have not made TextureButtons from code myself, but I have made some Control related nodes from script before. I did a quick test, and the code below works for me:
var new_button = TextureButton.new();
add_child(new_button);
new_button.rect_size = Vector2(100, 30);
new_button.rect_global_position = Vector2(80, 80);
new_button.texture_normal = load("res://icon.png");
new_button.connect("pressed", self, "button_pressed");