In reply to rexjohn4u:
The problem is when you declare an output port using a data type, it is implicitly declared as a variable, not net type, and variables are only allowed a signal continuous assignment to them. There is already a continuous assignment from the output of MY_CHILD_MODULE, and the bind statement adds another from the output of my_interface.
To make this work, you need to change the output of MY_MODULE to a wire.
module MY_MODULE(
output wire my_struct SIGNAL_NAME
);
MY_CHILD_MODULE my_child_module_inst(.SIGNAL_NAME (SIGNAL_NAME));
endmodule : MY_MODULE