Alternatively, you could turn off the intercept (which by default subsumes the baseline first level in the factor) and get all three effects like this:
set.seed(1)
DF <- data.frame(Name = sample(LETTERS[1:3], 99, replace = TRUE), Value = runif(99, 0, 100))
lm(Value ~ Name, data = DF)
#>
#> Call:
#> lm(formula = Value ~ Name, data = DF)
#>
#> Coefficients:
#> (Intercept) NameB NameC
#> 46.619 7.257 7.877
#DF$Name <- factor(DF$Name,levels = c("C", "B", "A"))
lm(Value ~ Name -1, data = DF)
#>
#> Call:
#> lm(formula = Value ~ Name - 1, data = DF)
#>
#> Coefficients:
#> NameA NameB NameC
#> 46.62 53.88 54.50
Created on 2019-12-02 by the reprex package (v0.3.0)
You can now see the relationships between the 2 ways of doing it - with the intercept, the value of the intercept (46.62) corresponds to the first level factor, the coefficient on NameB is 46.62 + 7.26 = 53.88 (the value of the same coefficient in the regression without an intercept) and analogously with the coefficient for NameC.
The reason you can't have both an intercept and all three factor levels is that the intercept is represented as a column of ones in the regressor matrix. Since each observation falls into one of the three categories (A, B or C) - which are represented as 3 dummy variable (0/1) columns, a model with an intercept and all three dummy variables results in a linear dependency which is not allowed since the X'X matrix has a reduced rank and is not invertible (and invertibility is requirement for a non-degenerate linear least squares model).