They do almost the same thing.
Can I say that they are interchangeable?
No they don't do the same thing. The official documentation says:
Message events: Message events are events which reference a named message. A message has a name and a payload. Unlike a signal, a message event is always directed at a single recipient.
Signal events: Signal events are events which reference a named signal. A signal is an event of global scope (broadcast semantics) and is delivered to all active handlers.
So that means a message event should be used to trigger a SINGLE receiving-task and a signal event should be used to trigger ALL receiving-tasks with that signal
Furthermore if it comes to designing your processes, you shouldn't always find a solution that 'just works'. You should also consider the fact of readability and understandability when someone else sees your diagram. If there is a message thrown in your process you should definetly model a message-event and not try to model a workaraound that makes the same but looks different.
For further reading here are the links to the events in the documentation:
https://docs.camunda.org/manual/7.10/reference/bpmn20/events/message-events/
https://docs.camunda.org/manual/7.10/reference/bpmn20/events/signal-events/