Not completely interchangeable because the meaning of each word is different, but you can use either word in some sentences and end up with essentially the same meaning (just like in English).
Take care of your body.
Take care of your health.
Both have virtually the same meaning, so in this case they are interchangeable - but you wouldn't say they are always interchangeable all the time.
This is also partially the answer to your second question. The writer is saying "eating fish is healthy" however "eating only fish isn't good for you". Only in Japanese, "good for you" is expressed as 体に悪い. Its a common expression.
The writer could have used 健康に悪い but since the writer started the sentence by saying 健康にいい, it would create a slightly unusual semantic negation if the writer ends the sentence with 健康に悪い. On top of that, the repetition of 健康に~ wouldn't sound as nice.