The short answer: the built-in function ARRAYFUN does exactly what your map function does for numeric arrays:
>> y = arrayfun(@(x) x^2,1:10)
y =
1 4 9 16 25 36 49 64 81 100
There are two other built-in functions that behave similarly: CELLFUN (which operates on elements of cell arrays) and STRUCTFUN (which operates on each field of a structure).
However, these functions are often not necessary if you take advantage of vectorization, specifically using element-wise arithmetic operators. For the example you gave, a vectorized solution would be:
>> x = 1:10;
>> y = x.^2
y =
1 4 9 16 25 36 49 64 81 100
Some operations will automatically operate across elements (like adding a scalar value to a vector) while others operators have a special syntax for element-wise operation (denoted by a "." before the operator). Many functions in MATLAB are designed to operate on vector and matrix arguments using element-wise operations, and thus don't require map functions.
To summarize, here are some different ways to square each element in an array:
x = 1:10;
f = @(x) x.^2;
% Option #1:
y = x.^2; % Use the element-wise power operator
% Option #2:
y = f(x); % Pass a vector to f
% Option #3:
y = arrayfun(f,x); % Pass each element to f separately
Of course, for such a simple operation, option #1 is the most sensible choice.