Since [^-]
will only match non-hyphen characters, your match group will start after the first hyphen and then stop before the next one. To capture everything following the first hyphen, try:
SELECT REGEXP_REPLACE(REGEXP_SUBSTR ('I - Am in- Need of Help- Please', '-.+' , 1), '-', '', 1, 1) FROM DUAL;