From Rob Donoghue, co-owner of Evil Hat Productions, the publisher of Fate.
Short version:
With the qualifier that it’s really a tiny bit of nuance. It’s
still, like, 99% yes.
Long version:
So, the only reason I would not say that it's written in stone that the
difficulty is known is that there are a very small (and largely
innocuous) handful of exceptions.
The first is situational. While vanishingly few and far between, I
can conceive of situations where the lack of information to the player
is reflective of something similarly disorienting and confusing in
play (hallucinations, illusions and such). There is a strong
component of taste in this usage - not every table can or should be
comfortable with this, but some will be. That said, were I to do
this as a GM, I would also be fully prepared to reimburse "wasted"
Fate points, or otherwise balance the scales.
A subset of this would be certain types of horror, but while I can
intellectually see the argument of hiding information to promote a
sense if powerlessness, I don't think I'd really go for that.
The second is when the GM is "testing the breeze" - the roll may not
have a difficulty per se, and instead merely be a framing mechanism.
Again, not something that's done at every table, and if this is the
case, the GM should communicate as much, or make sure to give some
suitable narrative payout for the spending of a FP. (Similar
situations where we're rolling to see who does best/worst are less of
an issue because the bonus has a direct effect).
Aside from those situations and those of their ilk, there is no real
reason to keep difficulty secret.
But there's a catch
Communicating difficulty can be awkward (conversationally) and when in
a situation where the range of difficulty is roughly at parity with
player capability (say, within +/-2) a GM can be forgiven for not
explicitly calling out the difficulty of every roll before the dice
hit the table. She should strive to be clear about effect and margin,
though the language for that should suit the table (some like the
ladder, some like numbers, some like descriptive approximations - they
all work) but clarity need not be exhaustive.
Anyway, that's just my philosophy-level answer. Specific builds can
and should have their own answers.