As mentioned in the doc the difference between these two functions is that one will take the log of the input but not the other.
So it will lead to surprising values if you give exponentiated values to BCELoss which does not expect them (values will be way too large). And potentially puts you in a region of the loss function where the gradient is 0.