As reported by Phil the new_table function wasn't passing on the nrows and fill arguments to the underling _TableBaseHDU.from_columns method.